private bool updateValue()
{
bool bCanSave = true;
bool bCommitDate = true;
bool bRepairNegative = false;
bool bIsWorkingDay = true;
bool bIsValidDay = true;
bool bolOB = true;
foreach(DataGridItem dgi in dgCustInvItem.Items)
{
ListItemType lit = dgi.ItemType;
if (lit == ListItemType.Item || lit == ListItemType.AlternatingItem)
{
TextBox txtActualQty = (TextBox)dgi.FindControl("txtActualQty");
TextBox txtLineType = (TextBox)dgi.FindControl("txtLineType"); 
TextBox txtOV = (TextBox)dgi.FindControl("OV_QTY");
TextBox txtOB = (TextBox)dgi.FindControl("OB_QTY");
TextBox txtOTHERS = (TextBox)dgi.FindControl("OTHERS_QTY");
TextBox txtSCRAPE = (TextBox)dgi.FindControl("SCRAPE_QTY");

int iActualQty = 0;
try
{
iActualQty = Convert.ToInt32(txtActualQty.Text.Trim());
}
catch
{} int iOvQty = 0;
try
{
iOvQty = Convert.ToInt32(txtOV.Text.Trim());
}
catch
{} int iObQty = 0;
try
{
iObQty = Convert.ToInt32(txtOB.Text.Trim());
}
catch
{} int iOthersQty = 0;
try
{
iOthersQty =  Convert.ToInt32(txtOTHERS.Text.Trim());
}
catch
{} int iScrapeQty = 0;
try
{
iScrapeQty =  Convert.ToInt32(txtSCRAPE.Text.Trim());
}
catch
{} if(txtLineType.Text.Trim() == "EXTRA")
{
if (iActualQty==0)
{
bCanSave = false;
}
}
if(iActualQty-iOvQty-iObQty-iOthersQty-iScrapeQty < 0)
{
bRepairNegative = true;
} TextBox txtCommitDate = (TextBox)dgi.FindControl("COMMIT_DATE");
try
{
DateTime dtDate = Convert.ToDateTime(txtCommitDate.Text.Trim());
}
catch
{
bCommitDate = false;
}
if(bCommitDate && bIsWorkingDay)
{
com.siemens.smi.rgm.components.Calendar objCalendar = new com.siemens.smi.rgm.components.Calendar(DateTime.Now);
bIsWorkingDay = objCalendar.checkWorkingDate(txtCommitDate.Text.Trim());
}
if (bCommitDate && bIsWorkingDay && bIsValidDay)
{
DateTime dtDate = Convert.ToDateTime(txtCommitDate.Text.Trim() + " 23:59:59");
if(dtDate < DateTime.Now)
{
bIsValidDay = false;
} }
//For OB item, OB qty must equal to actual receive qty
CustInvLine line = new CustInvLine();
DataTable dtTmp = line.FindItem(dgi.Cells[2].Text);
if(dtTmp.Rows.Count > 0)
{
if(dtTmp.Rows[0]["item_type"].ToString().Trim() == "OB")
{
if(iActualQty != iObQty)
{
bolOB = false;
}
}
} }
} if(bCanSave && !bRepairNegative && bCommitDate && bIsWorkingDay && bIsValidDay && bolOB)
{
CustInvLine objLine = new CustInvLine();
foreach(DataGridItem dgi in dgCustInvItem.Items)
{ ListItemType lit = dgi.ItemType;
if (lit == ListItemType.Item || lit == ListItemType.AlternatingItem)
{
TextBox txtActualQty = (TextBox)dgi.FindControl("txtActualQty");
TextBox txtOV = (TextBox)dgi.FindControl("OV_QTY");
TextBox txtOB = (TextBox)dgi.FindControl("OB_QTY");
TextBox txtOTHERS = (TextBox)dgi.FindControl("OTHERS_QTY");
TextBox txtSCRAPE = (TextBox)dgi.FindControl("SCRAPE_QTY");
TextBox txtRe = (TextBox)dgi.FindControl("txtRes"); 
TextBox txtCommitDate = (TextBox)dgi.FindControl("COMMIT_DATE"); objLine.UpdateQuantity(lblCustID.Text.Trim(),lblCustInv.Text.Trim(),dgi.Cells[1].Text.Trim(),"1",txtActualQty.Text.Trim(),
txtOV.Text.Trim(),txtOB.Text.Trim(),txtOTHERS.Text.Trim(),txtSCRAPE.Text.Trim(),txtCommitDate.Text.Trim(), txtRe.Text.Trim(),HttpContext.Current.User.Identity.Name);
}
}
btnVerifiy.Enabled = true;
FillGrid();
}
else
{
string strResponse = "";
if(bRepairNegative)
{
strResponse = " <script language='JavaScript'>"   +
"  alert(\"Repair Quantity can not be negative!\");"   +
" </script>"  ;
}
else if(!bCanSave)
{
strResponse = " <script language='JavaScript'>"   +
"  alert(\"Actual Rec'd Quantity can not be zero on the EXTRA line!\");"   +
" </script>"  ;
}
else if(!bCommitDate)
{
strResponse = " <script language='JavaScript'>"   +
"  alert(\"Commit Date format is wrong or can not be blank!\");"   +
" </script>"  ;
}
else if(!bIsWorkingDay)
{
strResponse = " <script language='JavaScript'>"   +
"  alert(\"Commit Date is NON WORKING DAY!\");"   +
" </script>"  ;
}
else if(!bIsValidDay)
{
strResponse = " <script language='JavaScript'>"   +
"  alert(\"Commit Date must be late than today!\");"   +
" </script>"  ;
}
else if(!bolOB)
{
strResponse = "<script language=javascript>alert('Obsolete qty must equal to actual received qty!');</script>";
}
Response.Write(strResponse);
}
return (bCanSave && !bRepairNegative);
}

解决方案 »

  1.   

    datagrid增加chackbox模板列
    然后每行都修改模板列为为Textbox模板列,部分选择或者不选择(帮定列转为模板列后,把选择列的剪切到普通模板列)
    在一个按钮里面检测checkbox,然后统一更新!
      

  2.   

    直接把DG里面的Itemtemplate换成textbox就可以了!
      

  3.   

    我还是详细讲一下我想要做的事情:DataGrid绑定的记录数不变,其包含的列有绑定列,模板列等,DataGrid提供的按钮列只能一次编辑一行纪录,而我想编辑所有行,下拉框可以选择,文本框可以输入,有什么办法??我需要的是将所有行都处于编辑状态的代码?
      

  4.   

    lxcc(虫子) 你说的方法究竟是怎么样的,不是很明白!!
      

  5.   

    coolmars(mars),能否介绍怎么实现,例子,代码都可以,谢了
      

  6.   

    http://dev.csdn.net/develop/article/28/28250.shtm
      

  7.   

    用如下的模板列!
    <asp:TemplateColumn HeaderText="测试">
    <ItemTemplate>
    <asp:TextBox runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Test") %>' ID="Textbox1">
    </asp:TextBox>
    </ItemTemplate>
    </asp:TemplateColumn>