用DateGrid模板列,有一列是textbox 另一列是label 现在要求:
label获取后台传过来的日期,在DateGrid中显示;
把用户输入textbox里的值插入到数据库,要怎么做? 就是说,如何把值传到模板列的控件中去,如何把模板列控件的值传出来!
请给出具体代码!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
谢谢.
label获取后台传过来的日期,在DateGrid中显示;
把用户输入textbox里的值插入到数据库,要怎么做? 就是说,如何把值传到模板列的控件中去,如何把模板列控件的值传出来!
请给出具体代码!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
谢谢.
解决方案 »
- 跪求asp.net自助建站系统原理及技术实现
- 改变FileUpload默认文件类型
- asp.net中,从数据库中读取数据自动生成XML,是怎么做的,谢谢大家先.
- ASP.NET实现心电图的效果??
- 求救!在ASP.NET 2.0内如何实现子父窗口?
- asp.net的数据库问题
- asp.net(c#)同时上传多个文件不成功
- 谁有关于ASP.NET的常见问题的解析的资料,请不吝赐教?
- Microsoft Visual Studio 2008建立第一个ASP.NET网页都不成功怎么办?
- 讨论:论坛这样的程序,用户在线记录应该放哪里好?
- 打包打包又是打包!!---为什么不能指定安装目录?[不是虚拟目录,而是根目录!]
- 求助关于在asp.net里调用ocx控件
<asp:label id=Label1 runat="server" Width="100%" Text='<%# DataBinder.Eval(Container.DataItem,"代理折扣","{0}%") %>'>Label</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox id=txtDLZK runat="server" Width="100%" Text='<%# DataBinder.Eval(Container.DataItem,"代理折扣") %>'>
</asp:textbox>
</EditItemTemplate>private void dg1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string dlzk=((TextBox) e.Item.FindControl ("txtDLZK")).Text.ToString();
}
e.Item[Index].FindControl("DataGrid1");
{
string requestName = String.Format("{0}:_ctl{1}:{2}",DataGrid1.ClientID,i+2,"TextBox1");
Response.Write( Request.Form[ requestName ] );
Response.Write("<BR>");
}
e.Item[Index].FindControl("DataGrid1");
--------------------------
同意
e.Item[Index].FindControl("DataGrid1");
--------------------------
同意写在哪啊!
那就要在DataGrid_ItemDataBound事件中,
当然录入数据库的事件处理是应该在DataGrid_ItemCommand事件中
e.Item[Index].FindControl("DataGrid1");
--------------------------
同意写在哪啊!----------------------------------------------------这样可以吗?应该是e.Item.FindControl("DataGrid1")或e.Item.Cells[Index].FindControl("DataGrid1")吧?
<asp:HyperLinkColumn DataTextField="au_id" HeaderText="au_id" DataNavigateUrlField="au_id" DataNavigateUrlFormatString="Edit.aspx?id={0}"></asp:HyperLinkColumn>
读取的时候可以用:
//Items[0]表示第一行,Cells[0]表示第一列,Controls[0]表示Cell中的第一个控件(也只有这个控件可以用)
HyperLink link = (HyperLink)DataGrid1.Items[0].Cells[0].Controls[0]);
Response.Write(link.Text);
至于模板列(TemplateColumn),当然也可以通过DataGrid1.Items[i].Cells[j].Controls[n]来获取,然后转换成原来的控件类型再操作,但是还有个更好的办法,就是用FindControl来查找控件。
FindControl是System.Web.UI.Control的方法,可以根据子控件ID来查找子控件
比如:
假设DataGrid的某一列声明如下
<asp:TemplateColumn>
<ItemTemplate>
<asp:TextBox Runat="server" ID="txtID" Text='<%# DataBinder.Eval(Container.DataItem,"au_id") %>'>
</asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
读取方法:
TextBox txt = (TextBox)DataGrid1.Items[1].FindControl("txtID");
Response.Write(txt.Text);
注意:DataList中是没有Cell的