[英]Asp.Net Grid view with Dynamically generated TemplateField Columns
我有一個Grid視圖,它的前三列是手動創建的,我想在后面的代碼中動態添加剩余的列,而且剩余的列必須在其中包含文本框。我該怎么做? 我嘗試了以下鏈接中的代碼: 如何以編程方式添加TemplateField通過使用此方法,我可以在列中添加文本框,但是找不到在文本框中訪問值的方法
public class AddTemplateToGridView : ITemplate
{
ListItemType _type;
string _colName,status;
int i = 0;
public AddTemplateToGridView(ListItemType type, string colname,string stat)
{
_type = type;
_colName = colname;
status = stat;
}
public AddTemplateToGridView()
{
}
void ITemplate.InstantiateIn(System.Web.UI.Control container)
{
switch (_type)
{
case ListItemType.Item:
TextBox txt = new TextBox();
txt.ID =id;
if (status == "havevalue")
{
txt.DataBinding += new EventHandler(ht_DataBinding);
}
container.Controls.Add(txt);
break;
}
}
這是我添加文本框的代碼。如何為每個文本框添加不同的ID? 我發現當我單擊另一個按鈕時ID將會丟失,有什么辦法可以防止這種情況發生嗎?
添加您可以使用DataItemIndex的唯一ID:
private void tb_DataBinding(object sender, EventArgs e)
{
TextBox tb = (TextBox)sender;
GridViewRow container = (GridViewRow)tb.NamingContainer;
object dataValue = DataBinder.Eval(container.DataItem, columnName, GetFormat());
if (dataValue != DBNull.Value)
tb.Text = dataValue.ToString();
tb.ID = columnName + container.DataItemIndex;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.