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 グリッドビューの現在の行からテキストボックスの値を取得したい

JavaScriptで私を助けてください

4

2 に答える 2

0

Linkbutton コードを次のように変更します。

      <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 に答える
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 + "')");
    }
}

そして次のようにあなたのグリッドビュー

<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 に答える