在ItemTemplate中动态插入UpdatePanel [英] Insert UpdatePanel in ItemTemplate dynamically
本文介绍了在ItemTemplate中动态插入UpdatePanel的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何将下面的示例html代码转换为C#?我已经四处搜索但找不到任何可用的帮助。
how can I convert the sample html code below into C#? I have searched around but could not find any usable help.
<asp:TemplateField HeaderText="ID">
<ItemTemplate>
<asp:UpdatePanel runat="server" ID="UpId"
UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
<asp:TextBox ID="TxtId" runat="server"
Text="" OnTextChanged="TxtId_TextChanged"
AutoPostBack="true"></asp:TextBox>
</ContentTemplate>
</asp:UpdatePanel>
</ItemTemplate>
</asp:TemplateField>
到目前为止,我试过这个,但不知道如何将UpdatePanel放入Templatefield。
I have tried this so far, but have no idea how to get the UpdatePanel into Templatefield.
TemplateField tpfield = new TemplateField();
tpfield.HeaderText = "ID"
gv.Columns.Add(tpfield);
UpdatePanel u1 = new UpdatePanel();
TextBox tb1 = new TextBox();
tb1.AutoPostBack = true;
tb1.TextChanged += tb1_TextChanged;
u1.ContentTemplateContainer.Controls.Add(tb1);
推荐答案
你需要创建一个类实现ITemplate
interface [ ^ ]。InstantiateIn
方法 [ ^ ]将使用容器控件调用,您的类应该在此时添加模板控件。
You need to create a class which implements theITemplate
interface[^]. TheInstantiateIn
method[^] will be called with the container control, and your class should add the template controls at that point.
sealed class IDFieldTemplate : ITemplate
{
public EventHandler TextChangedHandler;
public void InstantiateIn(Control container)
{
UpdatePanel u1 = new UpdatePanel();
TextBox tb1 = new TextBox();
tb1.AutoPostBack = true;
tb1.TextChanged += TextChangedHandler;
u1.ContentTemplateContainer.Controls.Add(tb1);
container.Controls.Add(u1);
}
}
...
IDFieldTemplate template = new IDFieldTemplate();
template.TextChangedHandler += tb1_TextChanged;
TemplateField tpfield = new TemplateField();
tpfield.HeaderText = "ID"
tpfield.ItemTemplate = template;
gv.Columns.Add(tpfield);
注意:如果你需要支持双向数据绑定,您的模板类还需要实现 IBindableTemplate
界面 [ ^ ]。
NB: If you need to support two-way data binding, your template class will also need to implement the IBindableTemplate
interface[^].
这篇关于在ItemTemplate中动态插入UpdatePanel的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文