0

这是我的网格视图

<asp:GridView ID="gvEmployee" runat="server" AutoGenerateColumns="false" GridLines="Both">
            <Columns>
                <asp:TemplateField HeaderText="Name">
                    <ItemTemplate>
                        <asp:TextBox ID="txtName" runat="server" Text='<%#Eval("Name") %>'></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="Emailid" HeaderText="EmailId" />
                <asp:TemplateField >
                    <ItemTemplate>
                        <asp:LinkButton ID="lnkgettext" runat="server"  OnClientClick="return callme(<%= txtName.ClientID %>);" Text="Gettextboxvalue" ></asp:LinkButton>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
  <script type="text/javascript">
        function callme(txt) {
            alert(txt);
        }
    </script>

LinkBut​​ton 的 Onclick 我想从 gridview 的当前行获取文本框的值

请帮我用javascript

4

2 回答 2

0

您将不得不使用如下绑定的行数据
这也可以通过 jQuery 来完成。但首先,目的应该是明确的。
即你想回发或不回发的天气等

protected void gvEmployee_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        LinkButton lk = (LinkButton)e.Row.FindControl("lnkgettext");
        TextBox textBox = (TextBox)e.Row.FindControl("txtName");
        lk.Attributes.Add("onclick", "return callme('" + lk.ClientID + "')");
    }
}

和你的gridview如下

<asp:GridView ID="gvEmployee" runat="server" AutoGenerateColumns="false" GridLines="Both"
        OnRowDataBound="gvEmployee_RowDataBound">
        <Columns>
            <asp:TemplateField HeaderText="Name">
                <ItemTemplate>
                    <asp:TextBox ID="txtName" runat="server" Text='<%#Eval("Name") %>'></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="Emailid" HeaderText="EmailId" />
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:LinkButton ID="lnkgettext" runat="server" Text="Gettextboxvalue"></asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
    <script type="text/javascript">
        function callme(txt) {
            alert(txt);
        }
    </script>

甚至 jquery 函数如下

     $(document).ready(function () {
        $('#gvEmployee a').click(function () {
            alert($(this).parent("td").parent("tr").find("input:text").val());
        });
    });
于 2012-11-16T17:06:06.533 回答
0

修改您的链接按钮代码如下:

      <asp:LinkButton ID="lnkgettext" runat="server"  
CommandArgument='<%#DataBinder.Eval(Container.DataItem, "Name")%>' 
 OnCommand="Load_Data" ></asp:LinkButton>

您可以获取一个隐藏字段,您可以从中检索值,隐藏字段将从以下代码中获取值:

<asp:HiddenField ID="hiddenfield1" runat="server" />

在服务器端

protected void Grid_RowCommand(object sender, GridViewCommandEventArgs e)
{
    switch (e.CommandName)
    {
        case "Load_Data":
        {
            hiddenfield1.value = e.CommandArgument.ToString();
            break;
        }
        default:
            break;
    }
}
于 2012-11-16T22:28:56.353 回答