解决方案 »

  1.   

    补充代码<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="test_Textbox_Keypress.aspx.vb" Inherits="membersip_login.test_Textbox_Keypress" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><%@ Implements Interface = "System.Web.UI.ICallbackEventHandler" %><script runat ="server" >
        Protected catalog As ListDictionary
        Protected saleitem As ListDictionary
        Protected returnValue As String
        Protected validationTxtbox As String = "txtbox"    Overloads Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
           
            Dim evt_ref As String = Page.ClientScript.GetCallbackEventReference(Me, Chr(34) & "param|" & validationTxtbox & Chr(34), "ReceiveServerData", Chr(34) & validationTxtbox & Chr(34))
            
             Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), _
                validationTxtbox, _
                "function txtbox_keypress() {  " & _
                " alert('start'); " & evt_ref & " ;}", True)
            
            txtbox.Attributes.Add("onkeypress", "txtbox_keypress()")
        End Sub
        
        
        Public Sub RaiseCallbackEvent(ByVal eventArgument As String) Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent
            Dim argParts() As String = eventArgument.Split("|"c)
            If ((argParts Is Nothing) OrElse (argParts.Length <> 2)) Then
                returnValue = "A problem occurred trying to retrieve stock count."
                Return
            End If        Dim product As String = argParts(0)
            Dim validationaction = argParts(1)
            Select Case validationaction
                Case "txtbox"
                    Try
                        Page.ClientScript.ValidateEvent("txtbox_keypress", validationaction)
                        txtbox.Text = "google"
                    Catch
                        returnValue = "Can not retrieve sale status."
                    End Try        End Select
        End Sub    Public Function GetCallbackResult() _
        As String Implements _
        System.Web.UI.ICallbackEventHandler.GetCallbackResult
            Return returnValue
        End Function
        
        Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
            Page.ClientScript.RegisterForEventValidation("txtbox_keypress", _
              validationTxtbox)
            MyBase.Render(writer)
        End Sub
    </script>
    <script type ="text/javascript" >
        function ReceiveServerData(rValue) {
            //Results.innerText = rValue;
        }
    </script>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:Label ID="txtbox_lb" runat="server" Text="txtbox1:"></asp:Label>
            <asp:TextBox ID="txtbox" runat="server" ></asp:TextBox>
        </div>
        </form>
    </body>
    </html>
      

  2.   

    代码里面
    txtbox.Text = "google"
    这个没有赋值成功
    请问谁帮忙解答下,谢谢?
      

  3.   

    点击事件触发时,txtbox.Text的值也不知道
    请问这是为什么??
      

  4.   

     Page.Response.Redirect(_Page.Request.Url.ToString())要在URL后面加一个随机参数,比如:/a/b/c/d.aspx?a1=****&b1=***&r=123445这个参数保证了浏览器不缓存当前页面,从而达到刷新的目的。另外,因为是URL的改变,所以,对页面而言,是从新开始(也就是不是回发)。控件没有赋值成功:
    (1)检查是否开通ViewState
    (2)是否有多少赋值
    (3)在IsPostBack后,是否在Page_Load里又重新赋值。
      

  5.   

    非常谢谢你的回复我在 @page 里面添加了 ViewStateEncryptionMode="Always"
    客户端的 txtbox 内容没有变化
    服务端里面获取到的 txtbox.txt 仍然是空的
    仍然存在如一楼提到的问题代码如二楼所示,当然没有多或少赋值
    不知有谁能明白,请指导指导。
      

  6.   

    解决方案:
    1. 如果想客户端回调服务端又需要刷新,用PostBackOptions 类----指定如何生成客户端 JavaScript 以启动回发事件。
    以上是需要服务端刷新客户端2. 如果不需要服务端刷新客户端,则可以采用RaiseCallbackEvent 或者 用 ajax
    1)  RaiseCallbackEvent 方便调用服务端控件 ,不用写webservice
    2)ajax不方便调用服务端控件,而且还要写webservice