我动态生成模板列(包含一个TextBox控件), 我不想在ItemDataBound事件中绑定,能不能象定义模板列自动绑定? 下面的绑定不能显示数据库中的值. public class EditStaffSalary : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid dgStaffSalary; private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
try
{
}
} private void DataGridAddColumn( string strColumnName )
{
TemplateColumn tempcol = new TemplateColumn( );
ColumnTemplate mycol = new ColumnTemplate( strColumnName );
tempcol.HeaderText = "模板列头";
tempcol.HeaderStyle.CssClass = "buttontitle";
tempcol.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
tempcol.ItemTemplate = mycol;
this.dgStaffSalary.Columns.AddAt( 0, tempcol );
}}public class ColumnTemplate : ITemplate
{
private string TextBoxID = ""; public ColumnTemplate( string strID )
{
TextBoxID = strID.Trim();
} public void InstantiateIn(Control container)
{
TextBox mytb = new TextBox();
mytb.Width = 90;
mytb.ID = "tb" + TextBoxID;
mytb.Text = "<%# DataBinder.Eval(Container.DataItem,\"" + TextBoxID + "\") %>";
container.Controls.Add(mytb);
}
}
{
protected System.Web.UI.WebControls.DataGrid dgStaffSalary; private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
try
{
}
} private void DataGridAddColumn( string strColumnName )
{
TemplateColumn tempcol = new TemplateColumn( );
ColumnTemplate mycol = new ColumnTemplate( strColumnName );
tempcol.HeaderText = "模板列头";
tempcol.HeaderStyle.CssClass = "buttontitle";
tempcol.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
tempcol.ItemTemplate = mycol;
this.dgStaffSalary.Columns.AddAt( 0, tempcol );
}}public class ColumnTemplate : ITemplate
{
private string TextBoxID = ""; public ColumnTemplate( string strID )
{
TextBoxID = strID.Trim();
} public void InstantiateIn(Control container)
{
TextBox mytb = new TextBox();
mytb.Width = 90;
mytb.ID = "tb" + TextBoxID;
mytb.Text = "<%# DataBinder.Eval(Container.DataItem,\"" + TextBoxID + "\") %>";
container.Controls.Add(mytb);
}
}
解决方案 »
- asp.net 怎么提取一个字符串中的所有中国字
- fckeditor 工具栏的高度如何设置
- 有2个按钮一个是客户端按钮,一个服务端按钮 当点击客户端按钮时要显示隐藏的DIV层,可是点击服务器按钮后DIV层就又隐藏了 ?
- vs2005的textbox控件是不是不支持onfocus了?
- 请高手帮偶修改一下down.asp
- 急,请各位帮帮忙!急急急!!!!谢谢!谢谢!谢谢!谢谢!!
- 哪里下载最好装的visual studio.net呢
- 菜鸟问题-如何配置我的ASP.NET
- 求救!! JS调用ACTIVEX事件
- DropDownList如何使用onSelectIndexChanged事件!?
- 屏蔽 Shift+鼠标左键
- 急!在线等。。。。关于group by 和 order by 连用
{
ListItemType templateType;
string columnName;
public DataGridTemplate(ListItemType type, string colname)
{
templateType = type;
columnName = colname;
} public void InstantiateIn(System.Web.UI.Control container)
{
Literal lc = new Literal();
switch(templateType)
{
case ListItemType.Header:
lc.Text = "<B>" + columnName + "</B>";
container.Controls.Add(lc);
break;
case ListItemType.Item:
lc.Text = "Item " + columnName;
container.Controls.Add(lc);
break;
case ListItemType.EditItem:
TextBox tb = new TextBox();
tb.Text = "";
container.Controls.Add(tb);
break;
case ListItemType.Footer:
lc.Text = "<I>" + columnName + "</I>";
container.Controls.Add(lc);
break;
}
}
}see:Creating Templates Programmatically in the DataGrid Controlhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbtskcreatingtemplatesprogrammaticallyindatagridcontrol.asp
另外我提个相关问题,我不知ASP.net的设计人员怎么想的(可能外国和国内不一样)
DataGrid中模板列要设ItemTemplate和EditItemTemplate做什么?我认为是画蛇添足,
在实际开发中EditItemTemplate应用比较少,一般都是在ItemType中编辑, 再执行保存等操作
(难道用户要编辑时,还要进入编辑状态才能编辑?多麻烦)
http://www.cnblogs.com/lovecherry/archive/2005/03/26/126102.html
http://www.cnblogs.com/lovecherry/archive/2005/05/01/148504.html