日期:2014-05-16  浏览次数:20401 次

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中的代