FineUI 官方论坛
标题:
Grid动态创建的模板列如何动态更新数据
[打印本页]
作者:
xxdddail
时间:
2014-7-2 17:22
标题:
Grid动态创建的模板列如何动态更新数据
有如下的Grid.
<f:Grid runat="server" ID="GridDemo" AllowCellEditing="true" ClicksToEdit="1">
<Columns>
<f:TemplateField Width="200" HeaderText="数据">
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%#Eval("Data") %>'></asp:TextBox>
</ItemTemplate>
</f:TemplateField>
</Columns>
</f:Grid>
复制代码
如果需要修改模板列中TextBox1的数据,可以在后台修改,然后更新,即
GridRow gridRow = GridDemo.Rows[0];
System.Web.UI.WebControls.TextBox textBox = gridRow.FindControl(TextBox1.ID) as System.Web.UI.WebControls.TextBox;
textBox.Text = Guid.NewGuid().ToString();
复制代码
但是动态生成的模板列,如果也要采用类似的方式来修改数据的话,要如何处理?
(通过修改数据源后重新绑定的方式虽说可以,但需要重新刷新页面来达成。所以想知道有没有类似
GridDemo.UpdateTemplateFields()的方式
)
动态模板列的生成如下
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
FineUI.TemplateField tf = new FineUI.TemplateField();
tf.Width = Unit.Pixel(200);
tf.ID = "tfDemo";
tf.HeaderText = "模板列";
tf.ItemTemplate = new GenderTemplate();
GridDemo.Columns.Add(tf);
}
}
复制代码
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
namespace FineUITest
{
public class GenderTemplate : ITemplate
{
public void InstantiateIn(System.Web.UI.Control container)
{
System.Web.UI.WebControls.Label lbl = new System.Web.UI.WebControls.Label();
lbl.DataBinding += new EventHandler(labGender_DataBinding);
container.Controls.Add(lbl);
}
private void labGender_DataBinding(object sender, EventArgs e)
{
System.Web.UI.WebControls.Label lbl = (System.Web.UI.WebControls.Label)sender;
IDataItemContainer dataItemContainer = (IDataItemContainer)lbl.NamingContainer;
String gender = ((DataRowView)dataItemContainer.DataItem)["Data"].ToString();
lbl.Text =gender;
}
}
}
复制代码
欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/)
Powered by Discuz! X3.4