gpt4 book ai didi

c# - 如何以编程方式双向绑定(bind)模板字段中的文本框

转载 作者:太空宇宙 更新时间:2023-11-03 16:55:30 25 4
gpt4 key购买 nike

我有一个 gridview,我正在以编程方式向其中添加模板字段。每个模板字段都有一个文本框。我想让这个文本框具有到数据库列的双向绑定(bind)。请看下面的代码。

public class CustomEditItemTemplate : ITemplate
{
private DataControlRowType templateType;
private string columnName;

public CustomEditItemTemplate(DataControlRowType type, string colname)
{
this.templateType = type;
this.columnName = colname;
}

public void InstantiateIn(System.Web.UI.Control container)
{
TextBox tb = new TextBox();
tb.ID = columnName;
tb.DataBinding += new EventHandler(this.tb_DataBinding);
container.Controls.Add(tb);
}

private void tb_DataBinding(Object sender, EventArgs e)
{
TextBox t = (TextBox)sender;
DetailsView dv = (DetailsView)t.NamingContainer;

//This line does only one way binding. It takes the rows from the database and displays
//them in the textboxes. The other way binding is not done. This is why my code fails
t.Text = DataBinder.Eval(dv.DataItem, columnName).ToString();
}

我调用上面的类如下

tf = new TemplateField();
tf.HeaderText = "My First Names";
tf.EditItemTemplate = new CustomEditItemTemplate(DataControlRowType.DataRow, "firstName");
dvModify.Fields.Add(tf);

如何使文本框在我编辑文本时也能在数据库中反射(reflect)出来?

谢谢大家抽空

最佳答案

也许您可以更改行 t.Text = DataBinder.Eval(dv.DataItem, columnName).ToString();类似于 t.Text= string.Format("<%# Bind(\"{0}\") %>", columnName);

这只是一个猜测...

如果这不起作用,我发现一些文章实际上编写了用于处理双向数据绑定(bind)的新类:

Article at CodeProject circa 2005

Article at Programmer's Heaven

希望其中一个选项有用。

关于c# - 如何以编程方式双向绑定(bind)模板字段中的文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2213749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com