DataGrid控件更新问题(各位路过的来看看) 我用C#.NET写的程序,使用DataGrid控件,想对该表进行编辑,我使用的代码是:string a=((TextBox)e.Item.Cells[3].Controls[0]).Text;但是在实行时,却没有实现更新,而直接对a赋值,则可以更新。即:string a="asp";执行原来的程序则有更新,是为什么?为什么取不到DataGrid中修改后的值呢(只取的原来的值)?请各位帮帮忙。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 更新后你没有重新绑定数据吧?给个示例代码:private void dgdBranch_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { if(this.EmpRightCode >= 3) { int index = e.Item.ItemIndex; int braID = Convert.ToInt16(dgdBranch.DataKeys[index].ToString(),10); string s1 = ((TextBox)e.Item.Cells[0].Controls[0]).Text; string s2 = ((TextBox)e.Item.Cells[1].Controls[0]).Text; if(!ValidateUtil.isBlank(s1)) { bool result = (new DepSystem()).UpdateMrBranch(braID,s1,s2); this.WriteOptLog("修改机构"+s1+"信息"); dgdBranch.EditItemIndex = -1; dgdBranch.DataBind(); } else JScript.Alert ("机构名称不能为空!"); } else JScript.Alert("您没有权限进行此操作!"); } <asp:TemplateColumn HeaderText="下载名:"> <ItemTemplate> <asp:Label id=Label1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ts_num") %>'> </asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox id=TextBox1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ts_num") %>'> </asp:TextBox> <asp:RequiredFieldValidator id="CompareValidator1" runat="server" ErrorMessage="必须字符" Display="Dynamic" ControlToValidate="TextBox1"></asp:RequiredFieldValidator> </EditItemTemplate>上面是前台的//更新 private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { //string empid = this.datagrid1.DataKeys[e.Item.ItemIndex].ToString(); string filename = ((TextBox)(e.Item.Cells[4].Controls[0])).Text; label.Text=filename; /* OleDbConnection con = new OleDbConnection(conn.connstring); OleDbCommand com = new OleDbCommand("UPDATE ts SET ts_num='"+filename+"' where id="+empid,con); con.Open(); com.ExecuteNonQuery(); con.Close(); this.db(); this.datagrid1.EditItemIndex = -1; //更新之后,索引值要设回初值,未选索引. this.db(); */}上面是后台比如本来值是8我把它改成110可是点了更新后lebel显示8,这是为什么啊?应该是110啊,这是那里错了??? string filename = ((TextBox)(e.Item.Cells[4].Controls[0])).Text;上面是我取的点编辑时文本框的值label.Text=filename;比如编辑时本来值是8我把它改成110可是点了更新后lebel显示8,这是为什么啊?应该是110啊,这是那里错了??? 断点调试跟踪一下看看filename有没有取到值。 估计是没把绑定写好Page_load(){ if(!Page.IsPostBack) { BindYourData();//在这里绑定DATAGRID数据. }} 搞定了,是没有加 if(!Page.IsPostBack)所以每次都给它绑定被初始化了,晕倒!!!!!!!!!!! 无法显示图片 List的问题,在线等召集啊 jmail发邮件嵌入iframe不显示 .net中将text放到frame中记忆功能失效! DataGrid怎样做出这样的效果(前台问题) 航班查询 asp.net怎么获取字符串数组的大小? web应用程序,datagrid绑定数据后,请问如何用程序实现显示当前第几页的功能? 请大家帮我分析一个小问题,谢谢了. 高手求,像网易在线书签一样可导入导出本地收藏夹! 关于SqlTransaction.Commit方法!! 急救:Global Themes 目录在哪里?
{
if(this.EmpRightCode >= 3)
{
int index = e.Item.ItemIndex;
int braID = Convert.ToInt16(dgdBranch.DataKeys[index].ToString(),10); string s1 = ((TextBox)e.Item.Cells[0].Controls[0]).Text;
string s2 = ((TextBox)e.Item.Cells[1].Controls[0]).Text;
if(!ValidateUtil.isBlank(s1))
{
bool result = (new DepSystem()).UpdateMrBranch(braID,s1,s2);
this.WriteOptLog("修改机构"+s1+"信息");
dgdBranch.EditItemIndex = -1;
dgdBranch.DataBind();
}
else
JScript.Alert ("机构名称不能为空!");
}
else
JScript.Alert("您没有权限进行此操作!");
}
<ItemTemplate>
<asp:Label id=Label1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ts_num") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=TextBox1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ts_num") %>'>
</asp:TextBox>
<asp:RequiredFieldValidator id="CompareValidator1" runat="server" ErrorMessage="必须字符" Display="Dynamic" ControlToValidate="TextBox1"></asp:RequiredFieldValidator>
</EditItemTemplate>
上面是前台的
//更新
private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//string empid = this.datagrid1.DataKeys[e.Item.ItemIndex].ToString();
string filename = ((TextBox)(e.Item.Cells[4].Controls[0])).Text; label.Text=filename;
/*
OleDbConnection con = new OleDbConnection(conn.connstring);
OleDbCommand com = new OleDbCommand("UPDATE ts SET ts_num='"+filename+"' where id="+empid,con);
con.Open();
com.ExecuteNonQuery();
con.Close();
this.db();
this.datagrid1.EditItemIndex = -1; //更新之后,索引值要设回初值,未选索引.
this.db();
*/}
上面是后台比如本来值是8我把它改成110可是点了更新后lebel显示8,这是为什么啊?应该是110啊,这是那里错了???
上面是我取的点编辑时文本框的值
label.Text=filename;比如编辑时本来值是8我把它改成110可是点了更新后lebel显示8,这是为什么啊?应该是110啊,这是那里错了???
Page_load()
{
if(!Page.IsPostBack)
{
BindYourData();//在这里绑定DATAGRID数据.
}}