質問

私はASP.NETのデータソースを使用してGridViewをバインドしています。ただし、これらのバンドフィールドにVisible="false"を設定すると、値は設定されず、RowDataBound関数では常に空白です。

これを行う方法はありますか?私は隠された範囲でスタイルを設定するという提案を見ましたが、これは私のためにも機能しませんでした。理想的には、GridViewで作成された列を望んでいません。ありがとう!

役に立ちましたか?

解決

DataItemメソッドに渡されたGridViewRowEventArgsからRowDataBoundを使用しましたか?

のようなもの:

protected void MyGridView_OnRowDataBound(object sender, GridViewRowEventArgs e)
{
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
        DataRowView rowView = (DataRowView)e.Row.DataItem;
        // do something with rowView["myHiddenField"]
    }
}
.

ここでMSDNを確認してください。

他のヒント

奇妙な、お元気ですか?私は私が使う前にこれをやったことを知っています:

<asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("ColumnName")%>'/>
.

これのために私はあなたがDatakeyを使うことを勧めます。

PLSこのリンクを参照してください http://www.codeproject.com/kb/grid/data_presentation.aspx

例えば:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"
.

DatakeyNames="EMP_ID、コード">

int EmployeeID = Convert.ToInt32(GridView1.DataKeys[row.RowIndex].Values[0]);
  int DepartementID = Convert.ToInt32(GridView1.DataKeys[row.RowIndex].Values[1]);
.

DATAROWバインド:

((GridView)sender).DataKeys[e.Row.RowIndex].Value.ToString();
.

Geetha

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top