更新时取不出来值,急呀,10天没法上论坛了....请帮忙了,在线等待,解决立刻给分!

poors 2004-06-07 08:57:17
<asp:datagrid id="dg_forumla" runat="server" BorderColor="Desktop" ForeColor="Desktop" Height="315px" Width="100%" AutoGenerateColumns="False" PageSize="15" OnUpdateCommand="dg_forumla_UpdateCommand" OnEditCommand="dg_forumla_EditCommand" OnCancelCommand="dg_forumla_CancelCommand" OnItemDataBound="dg_forumla_ItemDataBound">
<Columns>
<asp:BoundColumn DataField="report_row" ReadOnly="True">
</asp:BoundColumn>
<asp:BoundColumn DataField="report_title" ReadOnly="True" HeaderText="项 目">
</asp:BoundColumn>
.................
</columns>
</asp:datagrid>
//更新
public void dg_forumla_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
row=Convert.ToInt16(e.Item .Cells[0].Text);
new_formula1=((TextBox)e.Item.Cells[3].Controls[0]).Text.ToString();//取修改后得值
new_formula2=((TextBox)e.Item.Cells[4].Controls[0]).Text.ToString();
report.UpdateReportFormula(report_name,5,row,new_formula1,out flag1);
//调用方法更新存储过程
report.UpdateReportFormula(report_name,6,row,new_formula2,out flag2);//调用方法更新存储过程
this.dg_forumla .EditItemIndex =-1;
BindGrid();
}
private void BindGrid()
{
odr1=report.GetReportFormula(report_name,5);
odr2=report.GetReportFormula (report_name,6);
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("report_row", typeof(string)));
dt.Columns .Add(new DataColumn ("report_title",typeof(string)));
dt.Columns .Add(new DataColumn ("report_hc",typeof(string)));
dt.Columns.Add(new DataColumn("data1", typeof(string)));
dt.Columns.Add(new DataColumn("data2", typeof(string)));
while(odr1.Read ()&&odr2.Read ())
{
dr=dt.NewRow ();
int row;
dr[0]=odr1["report_row"];
row=Convert.ToInt16 (odr1["report_row"]);
report.GetReportTitle (report_name,row,3,flag,lb,out data1);
dr[1]=data1.ToString ().Trim ();
report.GetReportTitle (report_name,row,4,flag,lb,out data2);
dr[2]=data2.ToString ().Trim ();
dr[3]=odr1["compute_expression"].ToString ().Trim ().ToLower ();
dr[4]=odr2["compute_expression"].ToString ().Trim ().ToLower ();
dt.Rows .Add (dr);
}
odr1.Close ();
odr2.Close ();
this.dg_forumla .DataSource =new DataView(dt);
this.DataBind ();
}
测试时,总是没有反应,跟踪发现原来是
new_formula1=((TextBox)e.Item.Cells[3].Controls[0]).Text.ToString();
new_formula2=((TextBox)e.Item.Cells[4].Controls[0]).Text.ToString();
这两句取不出来值,不知道为什么请大侠指点.
...全文
102 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
poors 2004-06-07
  • 打赏
  • 举报
回复
有可能试试
lxcc 2004-06-07
  • 打赏
  • 举报
回复
page_load有没有

if(!IsPostBack)
{
//帮定DataGrid
}
poors 2004-06-07
  • 打赏
  • 举报
回复
各位,现在我把可以编辑的列改成模板列,可以取出来数,可是取的是没有编辑之前的数!而不是修改之后的数,为什么呀!
brightheroes 2004-06-07
  • 打赏
  • 举报
回复
((TextBox)e.Item.Cells[3].Controls[0]).Text.ToString();

要不干脆改成

e.Item.Cells[3].Text;看看
brightheroes 2004-06-07
  • 打赏
  • 举报
回复
e.Item.Cells[3].Controls[0]).Text.ToString()
??
改成e.Item.Cells[3].Text.ToString();看看
hsanzhang 2004-06-07
  • 打赏
  • 举报
回复
txta=ctype(e.item.cells[0].control[0],textbox)
henyzhang 2004-06-07
  • 打赏
  • 举报
回复
cells[0]是不是绑定列,我试过绑定列和超级链接列,好像超级链接列这样是取不出值来的
poors 2004-06-07
  • 打赏
  • 举报
回复
我只是绑顶列,没有放TextBox呀
poors 2004-06-07
  • 打赏
  • 举报
回复
这个行数,是不可以编辑的就可以取出来的
row=Convert.ToInt16(e.Item .Cells[0].Text);

下面的就取不出来,不知道为什么?
gshope 2004-06-07
  • 打赏
  • 举报
回复
绑定列里是不能放TextBox的,应该是模板列吧?用e.Item.FindControl("TextBoxID")
就可以.
poors 2004-06-07
  • 打赏
  • 举报
回复
我用的是绑定列,应该可以使用e.Item.Cells[3].Controls[0]).Text.ToString();吧????
孟子E章 2004-06-07
  • 打赏
  • 举报
回复
用e.Item.FindControl("TextBoxID")

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧