javascript给TextBox斌值后,怎么在Page_Load事件里获取TextBox的值
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" />
</div>
<script type="text/javascript">
document.getElementById("<%=TextBox1.ClientID %>").value = "999999999999";
</script>
</form>
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Page_load取不到TextBox1的值,好像是Page_Load事件比前台JS脚本先执行了
Dim str As String = Me.TextBox1.Text
Context.Response.Write(str)
End Sub
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'这里面可以获取到数据
Dim str As String = Me.TextBox1.Text
Context.Response.Write(str)
End Sub ------解决方案-------------------- 有两个问题:
1.如果你想获取改变后的的值,你至少是回发过来的,就是说通过服务器控件的点击事件过来的
2.document.getElementById("<%=TextBox1.ClientID %>").value = "999999999999";
没有意义
至少是这样的:
window.onload = function(){
document.getElementById("<%=TextBox1.ClientID %>").value = "999999999999";
}
------解决方案-------------------- 谁教你的要将回发处理的代码写在page_load呢?你没有看到通常在page_load中都会写
if(!IsPostback)
{......
这样的判断吗?因为page_load中的代码就怕被不小心胡乱调用了,所以要限制。
就你的代码来说,你把代码写到 page_PreRender 中就没有问题了!
或者就如你所言,在Click事件处理过程中就没有问题了。
aps.net页面生命周期中,它要收集所有Postback来的提交数据,并且
重建 上一次输出html之前相同的控件树并且恢复上一次页面输出时的成千上万个ViewState状态值(这个过程中触发page_load事件),
然后 才填入Postback来的提交数据,之后才(根据ViewState跟Post数据有不一样的从而)触发各种 ValueChanged 事件。因此正常的asp.net,就是这样的。你在page_load中去处理回发,只能说是瞎子摸象,靠生搬硬套别人的代码。
自己理解了asp.net机制,才会设计程序。
------解决方案-------------------- 看不懂。。。。
------解决方案-------------------- 你在page_load里做个计数器就知道了 。
------解决方案-------------------- 用ajax,可以写在js之后
------解决方案-------------------- 楼主,你先去找找ASP.NET页面的生命周期吧。。。
你对于页面执行的流程都没了解清楚。
------解决方案--------------------
pageload里执行 Response.Write("<script language=javascript> document.getElementById('<%=TextBox1.ClientID %>').value = '999999999999'</script>");
------解决方案-------------------- 引用: 谁教你的要将回发处理的代码写在page_load呢?你没有看到通常在page_load中都会写
if(!IsPostback)
{......
这样的判断吗?因为page_load中的代