3

datagrid から非表示の列の値を取得できません。列が非表示の場合、値を取得するにはどうすればよいですか?

ここに私のコード:

データグリッド:

<asp:BoundField DataField="id" HeaderText="ID" ReadOnly="True" 
            Visible="False" />
        <asp:BoundField DataField="category" HeaderText="Category" />
        <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" 
            ShowHeader="True" />

on 行削除イベント

 protected void dgvCategory_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        string id = dgvCategory.Rows[e.RowIndex].Cells[0].Text;

        string name = dgvCategory.Rows[e.RowIndex].Cells[1].Text;

        runDelete(id, name);

        loadDataCategory();            

    }

どうすれば問題を解決できますか?

4

1 に答える 1

4

この ID 列を DataKey として追加できます

あなたのaspxで

<asp:GridView DataKeyNames="id" ....

あなたのイベントで

protected void dgvCategory_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
    var key = this.GridView1.DataKeys[e.RowIndex].Value.ToString();
}

他のオプションは、css スタイルを使用して列を非表示にすることです

で新しい css クラスを作成し、それをおよびにdisplay: none;適用します。プロパティを削除します。ItemStyle-CssClassHeaderStyle-CssClassBoundFieldVisible="False"

他の列として値を取得できるようになりましたが、クライアント UI には表示されません。

于 2013-08-15T03:13:17.487 に答える