<asp:TemplateField HeaderText="用户名">
                <EditItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%# Eval("NickName") %>'></asp:Label>
                </EditItemTemplate>
                <HeaderTemplate>
                    &nbsp;<input type="text" id='MainContent_txtName' runat="server" 
                        onkeydown="if(event.keyCode==32) return false"  
                        style=" width:120px; height:25px; left:20px; position:relative;"  align="middle"/>
                </HeaderTemplate>
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("NickName") %>'></asp:Label>
                </ItemTemplate>
                <ItemStyle HorizontalAlign="Center" />
            </asp:TemplateField>    $("#GridView1_MainContent_txtName").keydown(function () { 
//这个地方能进去,因为runat=server,所以ID动态生成
        var v = $("#GridView1_MainContent_txtName").val();
//这获取不到输入的值,text(),html()都试了,都是空的!!怎么获取Gridview里的TextBox值??
        if (jsonStr == "" && v != "") {
            getGridJson(v);
        }
    });

解决方案 »

  1.   

    查看生成页面的源代码,firebug调试
      

  2.   

    都有ID标识了,直接$("#MainContent_txtName").val(),前题是,它没在框架页或模态窗口中。
      

  3.   


        $("#GridView1_MainContent_txtName").keydown(function () {
     var sortId =document.getElementById("MainContent_GridView1").getElementsByTagName("input");
    //MainContent_GridView1是GridView,获取GridView下的INPUT,然后取值,
    //我的那个input正好是第一个,所以去0
            var v = sortId[0].value;
            if (jsonStr == "" && v != "") {
                getGridJson(v);
            }
        });
      

  4.   

    我用//var tmp = $("#<%=txtNeedPage.ClientID %>").val();
                var tmp = $("#txtNeedPage").val();
    居然都不行,晕死!!!!!