更新时取不出来值,急呀,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();
这两句取不出来值,不知道为什么请大侠指点.