当DropDownList的值改变时,将其当前值赋给TextBox如何实现?同时页面无刷新。

时间:2022-10-20 20:09:20
当DropDownList的值改变时,将其当前值赋给TextBox的同时,页面不要刷新,以保留住上面其他TextBox的值,如何实现?
  小妹是初学,希望各位大哥多多指教!

10 个解决方案

#1


用javascript可以啊。

#2


<script language="javascript">
document.all["TextBox5"].value = document.all["DropDownList1"].value
</script>
是这个吗?

#3


页面无刷新可以用AJAX技术,首先要添加MagicAjax.dll引用

1.在你的应用程序的 web.config 文件中的 system.web 节中被注册, 例如:

<httpModules>

<add name="MagicAjax" type="MagicAjax.MagicAjaxModule, MagicAjax" /> 

</httpModules>
2.在页面上添加控件
<%@ Register TagPrefix="ajax" Namespace="MagicAjax.UI.Controls" Assembly="MagicAjax" %>
3.然后控件能使用这个标签来定义:

<ajax:AjaxPanel id="AjaxPanel1" runat="server">
此处放你的控件
</ajax:AjaxPanel>

#4


用JS脚本就可以了!

#5


用脚本控制的话  不能是服务器控件 要注意

#6


无刷新就得用js了,
但是不能用服务器控件

#7


用脚本控制的话,不能是服务器控件????

楼上说的纳闷。。。为什么JS不能控制服务器控件?

.NET底层生成的都是HTML代码?不过具体的给封装起来了,就是你用JS把dropdatalist的值给了asp:textbox,那么服务器仍然可以在回传时接受到最新的由JS更改过的asp:textbox的值,JS控制.NET生成的代码很容易。要知道只要RUNAT=“SERVER”的对象在服务器的内存中都会保留其视图状态,只要CLIENT传来的请求中,服务器就能用请求中的对象值在Page_Init初始化步骤里初始化这些对象的状态,如果页面不是回传,那么服务器的资源回收器就能自动收回这个连接线程所保留的内存(缓存)。这就是所谓的视图丢失。

asp:textbox能被服务器接受客户的返回新值,而asp:label就不能,同样的道理,2个对象都在服务器上保留视图,但是textbox是表单控件,在表单提交下textbox可以附带在post/get请求中传给服务器,而label却不是表单能附带在表单上的控件,所以不能被服务器接收。

做.NET,一定要熟悉架构原理,不是一味的编程。。。

#8


顺便说下,用JS控制就好


<script language="javascript">
function js_getChange()
{
    docoment.all["textbox_name"].value = docoment.all["list_name"].value;
}
</script>

这个放在服务器控件DropDownList里,不过要在代码文件里重载他的onchange属性

#9


谢谢各位了,我想问一下,大家有没有.net方面的比较好的书啊,小妹想好好学一下,呵呵

#10


该回复于2008-12-19 14:15:04被版主删除

#1


用javascript可以啊。

#2


<script language="javascript">
document.all["TextBox5"].value = document.all["DropDownList1"].value
</script>
是这个吗?

#3


页面无刷新可以用AJAX技术,首先要添加MagicAjax.dll引用

1.在你的应用程序的 web.config 文件中的 system.web 节中被注册, 例如:

<httpModules>

<add name="MagicAjax" type="MagicAjax.MagicAjaxModule, MagicAjax" /> 

</httpModules>
2.在页面上添加控件
<%@ Register TagPrefix="ajax" Namespace="MagicAjax.UI.Controls" Assembly="MagicAjax" %>
3.然后控件能使用这个标签来定义:

<ajax:AjaxPanel id="AjaxPanel1" runat="server">
此处放你的控件
</ajax:AjaxPanel>

#4


用JS脚本就可以了!

#5


用脚本控制的话  不能是服务器控件 要注意

#6


无刷新就得用js了,
但是不能用服务器控件

#7


用脚本控制的话,不能是服务器控件????

楼上说的纳闷。。。为什么JS不能控制服务器控件?

.NET底层生成的都是HTML代码?不过具体的给封装起来了,就是你用JS把dropdatalist的值给了asp:textbox,那么服务器仍然可以在回传时接受到最新的由JS更改过的asp:textbox的值,JS控制.NET生成的代码很容易。要知道只要RUNAT=“SERVER”的对象在服务器的内存中都会保留其视图状态,只要CLIENT传来的请求中,服务器就能用请求中的对象值在Page_Init初始化步骤里初始化这些对象的状态,如果页面不是回传,那么服务器的资源回收器就能自动收回这个连接线程所保留的内存(缓存)。这就是所谓的视图丢失。

asp:textbox能被服务器接受客户的返回新值,而asp:label就不能,同样的道理,2个对象都在服务器上保留视图,但是textbox是表单控件,在表单提交下textbox可以附带在post/get请求中传给服务器,而label却不是表单能附带在表单上的控件,所以不能被服务器接收。

做.NET,一定要熟悉架构原理,不是一味的编程。。。

#8


顺便说下,用JS控制就好


<script language="javascript">
function js_getChange()
{
    docoment.all["textbox_name"].value = docoment.all["list_name"].value;
}
</script>

这个放在服务器控件DropDownList里,不过要在代码文件里重载他的onchange属性

#9


谢谢各位了,我想问一下,大家有没有.net方面的比较好的书啊,小妹想好好学一下,呵呵

#10


该回复于2008-12-19 14:15:04被版主删除