0

GridView に 2 つの列(ID と名前)しかなく、クリックするたびに ID の値を取得する必要があるとします。たとえば、123をクリックすると、 123が表示されます。しかし、ここでは...そうではありません... IDをクリックすると、そのIDの横に名前が返されます(たとえば、123の場合、 Tony Starkを取得します)が、クリック時にIDの値を取得すると、常に空の文字列を返します。

言い換えれば、私は id の名前を正しく取得します (X=1 の場合) が、X=0 の場合、id は空の文字列になります... (int X と文字列 id : 以下の C# コードを参照)

サンプル GridView1

私のGridViewのXAMLコード:

                        <asp:ButtonField
                            DataTextField="ID"
                            HeaderText="ID">
                        </asp:ButtonField>

                        <asp:BoundField
                            DataField="Name"
                            HeaderText="NAME">
                        </asp:BoundField>

C#:

    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        string id = GridView1.Rows[Convert.ToInt32(e.CommandArgument)].Cells[X].Text.ToString();
        Response.Write(id);
    }

どうしたの?!! そして、これを修正する方法は?ありがとう!

4

3 に答える 3

-1

あなたの RowCommand ハンドラーでは、これがあなたが望むものだと思います:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        int id = (int)(DataBinder.Eval(e.Row.DataItem, "ID"));
        Response.Write(id);
    }
}

私はvbから変換しているので、いくつかの構文を見逃しているかもしれませんが、あなたはアイデアを得る...

于 2014-09-26T20:30:51.160 に答える