DG的绑定没有放在 ispostback 中,在编辑状态之下的几个问题DG 中发了模板列,代码如下:
<asp:TemplateColumn HeaderText="数量">
<ItemTemplate>
<asp:Label id=Label3 runat="server" Width="45px" text='<%# DataBinder.Eval(Container.DataItem, "QTY") %> '>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=Txt_Count runat="server" Width="45px" text='<%# DataBinder.Eval(Container.DataItem, "QTY") %> '>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>显示的时候出现lable3 中的内容,编辑状态之下显示Txt_Count 中的内容,并且可以更改,1---取不到更改textbox 之后的值?TextBox Txt_Count =(TextBox)e.Item.FindControl("Txt_Count");
TextBox Txt_Count =(TextBox)e.Item.Cells[8].Controls[1];
TextBox Txt_Count =(TextBox)dg1.Items[e.Item.ItemIndex].FindControl("Txt_Count");取得的都是更改之前的值????
<asp:TemplateColumn HeaderText="数量">
<ItemTemplate>
<asp:Label id=Label3 runat="server" Width="45px" text='<%# DataBinder.Eval(Container.DataItem, "QTY") %> '>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=Txt_Count runat="server" Width="45px" text='<%# DataBinder.Eval(Container.DataItem, "QTY") %> '>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>显示的时候出现lable3 中的内容,编辑状态之下显示Txt_Count 中的内容,并且可以更改,1---取不到更改textbox 之后的值?TextBox Txt_Count =(TextBox)e.Item.FindControl("Txt_Count");
TextBox Txt_Count =(TextBox)e.Item.Cells[8].Controls[1];
TextBox Txt_Count =(TextBox)dg1.Items[e.Item.ItemIndex].FindControl("Txt_Count");取得的都是更改之前的值????
// 可同时更改多行数据项
// 应该可以解决你的问题
// 无技术含量,主要是利用ViewState保存更改前的值,如果点取消,就恢复此值.-----------------------------------
private void dg_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
TextBox txtOrderSKUQuantity;
TextBox txtOrderSKUMemo;
LinkButton LbtnEdit;
LinkButton LbtnOK;
LinkButton LbtnCancel;
txtOrderSKUQuantity = e.Item.Cells[7].Controls[1] as TextBox;
txtOrderSKUMemo = e.Item.Cells[8].Controls[1] as TextBox;
LbtnEdit = e.Item.FindControl("LinkButton1") as LinkButton;
LbtnOK = e.Item.FindControl("LinkButton2") as LinkButton;
LbtnCancel = e.Item.FindControl("LinkButton3") as LinkButton;
switch (e.CommandName)
{
case "Edit":
{
// 改变样式
txtOrderSKUQuantity.ReadOnly = false;
txtOrderSKUQuantity.BorderStyle = BorderStyle.Groove;
txtOrderSKUQuantity.BackColor = Color.LightBlue; txtOrderSKUQuantity.BorderWidth = 1;
txtOrderSKUMemo.ReadOnly = false;
txtOrderSKUMemo.BorderStyle = BorderStyle.Groove;
txtOrderSKUMemo.BackColor = Color.LightBlue;
txtOrderSKUMemo.BorderWidth = 1; // 保存原始值
this.ViewState[e.Item.ItemIndex.ToString()+"SKUQuantity"] = txtOrderSKUQuantity.Text;
this.ViewState[e.Item.ItemIndex.ToString()+"SKUMemo"] = txtOrderSKUMemo.Text;
// 改变状态
LbtnEdit.Visible = false;
LbtnOK.Visible = true;
LbtnCancel.Visible = true;
break;
}
case "OK":
{
try
{
int MyCount = Convert.ToInt32(txtOrderSKUQuantity.Text);
if (txtOrderSKUQuantity.Text.Trim() == string.Empty)
{
Page.RegisterStartupScript("200604031428","<script language=javascript>alert('"+"数量不允许为空!"+"');</script>");
}
else if(MyCount < 1)
{
Page.RegisterStartupScript("200604031429","<script language=javascript>alert('"+"数量值必须大于0!"+"');</script>");
}
else
{
txtOrderSKUQuantity.ReadOnly = true;
txtOrderSKUQuantity.BorderStyle = BorderStyle.None;
txtOrderSKUQuantity.BackColor = Color.White;
txtOrderSKUQuantity.BorderWidth = 0;
txtOrderSKUMemo.ReadOnly = true;
txtOrderSKUMemo.BorderStyle = BorderStyle.None;
txtOrderSKUMemo.BackColor = Color.White;
txtOrderSKUMemo.BorderWidth = 0; LbtnEdit.Visible = true;
LbtnOK.Visible = false;
LbtnCancel.Visible = false;
// 更新数据表内容
if(this.ViewState["OverTable"] != null)
{
// OverSKUTable 表为DG的数据源表
OverSKUTable = this.ViewState["OverTable"] as DataTable;
OverSKUTable.Rows[e.Item.DataSetIndex][SKUData.ORDERSKUQUANTITY_FIELD] = txtOrderSKUQuantity.Text.Trim();
OverSKUTable.Rows[e.Item.DataSetIndex][SKUData.ORDERSKUMEMO_FIELD] = txtOrderSKUMemo.Text;
this.ViewState["OverTable"] = OverSKUTable;
}
}
}
catch
{
Page.RegisterStartupScript("200604031446","<script language=javascript>alert('"+"只能输入数量!"+"');</script>");
}
break;
}
case "Cancel":
{ txtOrderSKUQuantity.ReadOnly = true;
txtOrderSKUQuantity.BorderStyle = BorderStyle.None;
txtOrderSKUQuantity.BackColor = Color.White;
txtOrderSKUQuantity.BorderWidth = 0;
txtOrderSKUMemo.ReadOnly = true;
txtOrderSKUMemo.BorderStyle = BorderStyle.None;
txtOrderSKUMemo.BackColor = Color.White;
txtOrderSKUMemo.BorderWidth = 0; txtOrderSKUQuantity.Text = this.ViewState[e.Item.ItemIndex.ToString()+"SKUQuantity"] as String;
txtOrderSKUMemo.Text = this.ViewState[e.Item.ItemIndex.ToString()+"SKUMemo"] as String; LbtnEdit.Visible = true;
LbtnOK.Visible = false;
LbtnCancel.Visible = false;
this.SaveOrderbtn.Enabled = true;
break;
}
}
}-----------------------------------
呵.. 挺乱的.. 建议复制到IDE里再看...