有一个gridview(比如显示了10条记录)和输入框,输入一个或几个字母,立刻(注意不是点击按钮,是立刻)过滤出相应的信息用gridview显示(这时可能只有3条记录)。现在卡在cs文件在哪里绑定gridview。已经确认的是用到onkeyup事件,js捕获到输入的字母然后传递给cs文件,问题来了,cs文件里在哪里接受那个变量,如果是提交按钮好说,点击事件函数里增加绑定即可,可现在没有提交,只能从js的onkeyup里获取那个变量。
js和cs通信用的是回调函数法,在回调函数里绑定试过不行。然后试过隐藏域,隐藏域的话在哪里绑定?
<asp:HiddenField ID="ValueHiddenField" runat="server" OnValueChanged="ValueHiddenField_ValueChanged" />cs文件
ValueHiddenField_ValueChanged()
{
绑定gridview //这里是否正确?
}还有一直搞不清楚,TextChanged事件又是怎么回事,和onkeyup又有什么区别,中间掺和了js,又起什么作用,如果js可以直接查数据库并绑定就好了。

解决方案 »

  1.   

    用Ajax啊... aspx页或者ashx页 把获取的值作为网页地址传过去
      

  2.   

    最初采用的就是ajax,w3school有例子教程,可惜是把变量传递给asp页面,asp可以动态查询数据库,现在.net的话,传递给谁?传递给本身的aspx?那后台cs在哪进行绑定操作?另,有人说用jquery,是否是这样,如果是需要用jquery的哪些事件?
      

  3.   

    onkeyup  js 跳转到页面的cs然后在不是首次加载的地方用不行么??
    if(!IspostBack)
    {}else
    {
    在这里写  不行么??
    }
      

  4.   

    ls,关键是如何获取js中的那个变量,else中如何获取?
      

  5.   

    与后台交互:ajax 
    文本框的事件用HTML textchanged
      

  6.   

    用 TextChanged 事件好一些,TextChanged 事件是在KeyUp事件之后触发的,不用去考虑F1、F2、Insert、Home、箭头之类的不可见字符。
    把GridView放在一个UpdatePanel里做局部刷新,在 CS 中写 TextChanged 事件,可以直接获取到输入框中的Text,根据这个值查询过滤重新绑定GridView。
      

  7.   

    用listview控件 后台在 protected void TextBox1_TextChanged(object sender, EventArgs e)
        {    }
    这个里面写绑定到listview里ajax也可以
      

  8.   

    <asp:TextBox ID="txtName" runat="server" onkeyup="fNameChange();"></asp:TextBox> 
    function fNameChange(){
        if($('#txtName').val().length<6){
            jQuery("#checkSta").html("姓请输入符合要求的字符!").css("color","red");
        }else{
            myajax();
        }
    }
      

  9.   

    嗯,6 7楼应该是正解。8楼,listview和gridview有啥区别啊,listview不用局部刷新吗?
      

  10.   

    js捕获到输入的字母然后传递给cs文件TextChanged事件是写在服务端的,当页面提交(PostBack)后才会调用到
    onkeyup是JS里的按键事件,按键之后即时触发,常用来(在提交前)检查表单内容是否合法在gridview的相应事件中通过行Container.FindControl("ValueHiddenField")来提取值http://www.cnblogs.com/lc1055/archive/2009/05/07/1452044.html