Asp.netのGridViewを動的に列を追加します

Asp.netのGridViewを動的に列を追加、カラム制御は、任意に1つ以上指定することができます。

サポートデータの正常な、より柔軟、かつ操作をバインドすることができ、多くよりも表コントロール。

例を以下に示します。

1.最初の列を指定する動的に追加します

2.データバインディング

3. GridViewコントロールの値を取得します。

コードは以下の通りであります:

システムを使用しました。
System.Dataを使用しました。
たSystem.Web.UIを使用しました。
System.Web.UI.WebControlsを使用しました。

公共の部分クラスのOther_TestGridView:System.Web.UI.Page
{
publicクラスのGenericItem:ITemplate
{

プライベート文字列;

公共GenericItem(ストリング列)
{

this.column =カラム。

}

公共ボイドInstantiateIn(コントロールコンテナ)
{

//テキストボックスTXT =新しいテキストボックス()。

//txt.Width = Unit.Pixel(15)。

//txt.DataBinding + =新しいイベントハンドラ(this.BindData)。
DropDownListのDDL =新しいDropDownListコントロール();
ddl.DataBinding + =新しいEventHandlerの(this.BindData)。

container.Controls.Add(DDL)。

HiddenField HF =新しいのHiddenField();
HF.Value =カラム;

container.Controls.Add(HF)。

}

公共ボイドBindData(オブジェクト送信者、のEventArgs電子)
{

//テキストボックスTXT =(テキストボックス)センダ。
//txt.Text = "▲"。
DropDownListのDDL =(DropDownListコントロール)センダ。
ddl.Items.Add(新しいリストアイテム( "○"));
ddl.Items.Add(新しいリストアイテム( "▲"));
ddl.Items.Add(新しいリストアイテム( "●"));


}

}
保護されたボイドGridView1_Init(オブジェクト送信者、のEventArgs電子)
{
addGridColumns()。
}

プライベートボイドaddGridColumns()
{
ため(INT i = 0; iは<10; I ++)
{
TemplateField templateField =新しいTemplateField()。
templateField.HeaderText = "标题人名" + i.ToString()。
templateField.ItemTemplate =新しいGenericItem((10+ I).ToString());
GridView1.Columns.Add(templateField)。
}

}

ボイドをPage_Load(オブジェクト送信者、のEventArgs eを)保護
{
IF(IsPostBackプロパティ!)
{
データテーブルDT =新しいデータテーブル()。
dt.Columns.Add( "仕事"、typeof演算(文字列));
dt.Rows.Add(新しいオブジェクト[] { "工作描述1"})。
dt.Rows.Add(新しいオブジェクト[] { "工作描述2"})。
dt.Rows.Add(新しいオブジェクト[] { "工作描述3"})。
GridView1.DataSource = DT;
GridView1.DataBind(http://www.amjmh.com)。
}
}
//获取内容
保護ボイドのButton1 Click(オブジェクト送信者、のEventArgs電子)
{
文字列の内容=「」;
foreachの(GridView1.RowsでGridViewRow行)
{
コンテンツ+ = row.Cells [0]の.text。
以下のために(INT I = 1; I <row.Cells.Count; iは++)
{
//コンテンツ+ =((テキストボックス)(row.Cells [I] .Controls [0]))テキスト。
コンテンツ+ =((DropDownListコントロール)(row.Cells [I] .Controls [0]))SelectedItem.Text。
}
コンテンツ+ = "<BR>"。
}
// MyClientScript.ygJScript.Alert(コンテンツ、これを)。
ます。Label1.Text =コンテンツ;
}
}

---------------------

おすすめ

転載: www.cnblogs.com/liyanyan665/p/11335180.html