2

良い一日

リンクボタンを含むgridviewがあります。リンクボタンをクリックしたときに、その値(テキスト)を取得するにはどうすればよいですか。

これは私がやったことです。

<asp:TemplateField>
        <ItemTemplate>
            <asp:LinkButton ID="lnkProdCode" CommandName="ProdCode" runat="server" Width="115%" Text='<%# DataBinder.Eval(Container.DataItem,"CODE") %>' style="color:Black;font-size:smaller;"></asp:LinkButton>
        </ItemTemplate>
        </asp:TemplateField>

protected void gridReport_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "ProdCode")
    {   
        GridViewRow selectedRow = (GridViewRow)((LinkButton)e.CommandSource).NamingContainer;
        string valueLink = selectedRow.Cells[0].Text;
        System.Diagnostics.Debug.WriteLine("This is the value " + valueLink);
    }



}

現時点では、値を取得できません。

4

2 に答える 2

3

あなたはすでにLinkBut​​tonを持っています、ただTextプロパティを使用してください

if (e.CommandName == "ProdCode")
{   
    System.Diagnostics.Debug.WriteLine("This is the value " + 
                                       ((LinkButton)e.CommandSource).Text);
}
于 2013-02-04T11:57:24.127 に答える
3

よくわかりませんが、LinkBut​​tonのテキストに値を保存しているようです。CommandArgument財産を使ってみませんか?

<asp:TemplateField>
   <ItemTemplate>
            <asp:LinkButton ID="lnkProdCode" CommandName="ProdCode" runat="server" Width="115%" Text='<%# DataBinder.Eval(Container.DataItem,"CODE") %>' CommandArgument='<%# DataBinder.Eval(Container.DataItem,"CODE") %>' style="color:Black;font-size:smaller;"></asp:LinkButton>
   </ItemTemplate>
</asp:TemplateField>

次に、これを行うことができます:

protected void gridReport_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "ProdCode")
    {   
        System.Diagnostics.Debug.WriteLine("This is the value " + e.CommandArgument);
    }
}

もちろん、データを複製する必要がありますが、それが望ましく、より便利だと思います。

于 2013-02-04T12:12:16.070 に答える