怎样为模板列赋值,模板列是动态添加的 dategrid有一个模板列特Textbox1,模板列是动态添加的,怎样对Textbox1赋值? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以在ItemDataBound事件里TextBox tb = e.Item.FindControl("TextBox1") as TextBox;tb.Text = "abc"; 我动态添加模板列是这么写的,这样写不能再为模板列赋值吗?DataRow drAdd = dtNew.NewRow();//dtNew是datatabledtNew.Rows.Add(drAdd);//绑定数据this.dgT.DataSource = dtNew.DefaultView;this.dgT.DataBind(); that is not 模板列, dtNew.Rows.Add adds a new record! TextBox txt = (TextBox)e.Item.FindControl("TextBox1");txt.Text = "saffdsa"; 常法是把DataTable数据放在一个Session变量里,或者在数据库里,重新查询 to saucer ;我这样的思路不知可不可以。1)在 Page_load 的 IsPossBack 时创建表并绑定到 DataGrid dg 上面 然后 ViewState["table"] = 这个新表 如:dt12)点击 添加行的按扭后DataTable dt_2 = (DataTable)ViewState["table"];然后对 dt_2 进行 NewRow = dt_2.NewRow()dt_2.Rows.Add(NewRow);之后重新赋值 ViewState["table"] = dt_2;之后绑定 dg.这样实现究竟可不可以?为什么 添加后对 dg 的绑定 在页面上依然无法显示在输入框输入的值前台代码如下:<asp:TemplateColumn HeaderText="Name"><ItemTemplate> <asp:TextBox ID="tbName" Text='<%# DataBinder.Eval(Container, "DataItem.dcName") %>' MaxLength="20" Runat="server" CssClass="txtINPUT"> </asp:TextBox></ItemTemplate></asp:TemplateColumn>想问 saucer 用这个的方法到底能不能实现 楼主 需要的功能 ,谢谢。 不能用数据库,使用Session变量的方法我用过,没出来,可能使用的不对DataRow drAdd = dtNew.NewRow();//dtNew是datatabledtNew.Rows.Add(drAdd);//绑定数据this.dgT.DataSource = dtNew.DefaultView;this.dgT.DataBind();ViewState["dt"] = dtNew;//我传给了ViewState,要是你会怎样写?//NewRow重邦之后数据会别冲掉。 别用ViewState,DataGrid已经把一份数据放在ViewState里(虽说你也可以应此取出来,但数据类型全没了)了,再说ViewState只对当前页面的POST才有效,要是用户按什么连接的话,你的数据就没了DataTable dt = Session["MyData"] as DataTable;if (dt == null){ //....create dt dt = new DataTable(); //... Session["MyData"] = dt;} if (!IsPostBack){ dgT.DataSource = dt.DefaultView; dgT.DataBind();} to saucer:您看一下,这是我刚写的主要代码,Page_Load 和 btnAddrows_Click 事件的代码但 依然无法实现点击添加按扭后保存已经在 TextBox 输入的值希望您能帮忙指点一下。谢谢。private void Page_Load(object sender, System.EventArgs e){ if (!Page.IsPostBack) { //如果 DataTable 不为空 则清空 if (dtAdd.Columns.Count <= 0) { DataColumn dcName = new DataColumn(); dcName.ColumnName = "dcName"; dcName.DefaultValue = ""; DataColumn dcSex = new DataColumn(); dcSex.ColumnName = "dcSex"; DataColumn dcAge = new DataColumn(); dcAge.ColumnName = "dcAge"; dcAge.DefaultValue = "100"; //添加列 dtAdd.Columns.Add(dcName); dtAdd.Columns.Add(dcSex); dtAdd.Columns.Add(dcAge); } Session["dt"] = dtAdd; this.dgT.DataSource = ((DataTable)Session["dt"]).DefaultView; this.dgT.DataBind(); }} btnAddrows_Click 事件private void btnAddrows_Click(object sender, System.EventArgs e){ //开始添加行 DataTable dtNew = (DataTable)Session["dt"]; if (dtNew.Rows.Count > 7) { ShowMess("请勿一次性添加 8 行以上!"); return; } DataRow drAdd = dtNew.NewRow(); dtNew.Rows.Add(drAdd); Session["dt"] = dtNew; this.dgT.DataSource = dtNew; this.dgT.DataBind();} 不行啊老大,看一下代码page_lode DataTable dt = (DataTable)Session["MyData"]; if (dt == null) { dt = new DataTable(); Session["MyData"] = dt; } if (!Page.IsPostBack) { this.dgT.DataSource = dt; this.dgT.DataBind(); }button_click DataTable dtNew = (DataTable)Session["MyData"]; DataRow drAdd = dtNew.NewRow();//NewRow(); dtNew.Rows.Add(drAdd); //绑定数据 this.dgT.DataSource = dtNew.DefaultView; this.dgT.DataBind(); 数据字段 寻求vs2008中上传文件的解决方案 救命啊!数据库数据转换XML!十万火急!在线等待啊! 制作安装程序时数据库登陆信息死活传不进Installer类 小弟初学,请问怎么样实现下面所说的功能? asp能从数据库中提取字段并生成链接吗?要求链接显示的名字为下载 如何在用户登录之前验证是否激活? 高分求ASP代码[7行]转化成C#代码 remoting 配置文件 在web项目中能用吗?? 求助!关于上传文件的问题!! asp.net怎么判断操作系统是简体还是繁体? asp.net中Session存储信息,如何判断它是否存在,是否已经登录?
tb.Text = "abc";
我动态添加模板列是这么写的,这样写不能再为模板列赋值吗?DataRow drAdd = dtNew.NewRow();//dtNew是datatable
dtNew.Rows.Add(drAdd);//绑定数据
this.dgT.DataSource = dtNew.DefaultView;
this.dgT.DataBind();
txt.Text = "saffdsa";
我这样的思路不知可不可以。
1)在 Page_load 的 IsPossBack 时创建表并绑定到 DataGrid dg 上面 然后
ViewState["table"] = 这个新表 如:dt12)点击 添加行的按扭后
DataTable dt_2 = (DataTable)ViewState["table"];
然后对 dt_2 进行
NewRow = dt_2.NewRow()
dt_2.Rows.Add(NewRow);
之后重新赋值 ViewState["table"] = dt_2;
之后绑定 dg.
这样实现究竟可不可以?为什么 添加后对 dg 的绑定 在页面上依然无法显示在输入框输入的值
前台代码如下:
<asp:TemplateColumn HeaderText="Name">
<ItemTemplate>
<asp:TextBox ID="tbName" Text='<%# DataBinder.Eval(Container, "DataItem.dcName") %>' MaxLength="20" Runat="server" CssClass="txtINPUT">
</asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
想问 saucer 用这个的方法到底能不能实现 楼主 需要的功能 ,谢谢。
DataRow drAdd = dtNew.NewRow();//dtNew是datatable
dtNew.Rows.Add(drAdd);//绑定数据
this.dgT.DataSource = dtNew.DefaultView;
this.dgT.DataBind();ViewState["dt"] = dtNew;//我传给了ViewState,要是你会怎样写?
//NewRow重邦之后数据会别冲掉。
if (dt == null)
{
//....create dt
dt = new DataTable();
//...
Session["MyData"] = dt;
} if (!IsPostBack)
{
dgT.DataSource = dt.DefaultView;
dgT.DataBind();
}
但 依然无法实现点击添加按扭后保存已经在 TextBox 输入的值
希望您能帮忙指点一下。谢谢。
private void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
{
//如果 DataTable 不为空 则清空
if (dtAdd.Columns.Count <= 0)
{
DataColumn dcName = new DataColumn();
dcName.ColumnName = "dcName";
dcName.DefaultValue = ""; DataColumn dcSex = new DataColumn();
dcSex.ColumnName = "dcSex";
DataColumn dcAge = new DataColumn();
dcAge.ColumnName = "dcAge";
dcAge.DefaultValue = "100"; //添加列
dtAdd.Columns.Add(dcName);
dtAdd.Columns.Add(dcSex);
dtAdd.Columns.Add(dcAge);
}
Session["dt"] = dtAdd;
this.dgT.DataSource = ((DataTable)Session["dt"]).DefaultView;
this.dgT.DataBind();
}
} btnAddrows_Click 事件
private void btnAddrows_Click(object sender, System.EventArgs e)
{
//开始添加行 DataTable dtNew = (DataTable)Session["dt"]; if (dtNew.Rows.Count > 7)
{
ShowMess("请勿一次性添加 8 行以上!");
return;
} DataRow drAdd = dtNew.NewRow(); dtNew.Rows.Add(drAdd);
Session["dt"] = dtNew; this.dgT.DataSource = dtNew;
this.dgT.DataBind();
}
page_lode
DataTable dt = (DataTable)Session["MyData"];
if (dt == null)
{
dt = new DataTable();
Session["MyData"] = dt;
}
if (!Page.IsPostBack)
{
this.dgT.DataSource = dt;
this.dgT.DataBind();
}button_click
DataTable dtNew = (DataTable)Session["MyData"]; DataRow drAdd = dtNew.NewRow();//NewRow();
dtNew.Rows.Add(drAdd); //绑定数据
this.dgT.DataSource = dtNew.DefaultView;
this.dgT.DataBind();