`

DataGrid能一次修改多行记录吗?如果不行,有其他方法实现吗?

阅读更多

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 txtRemark = (TextBox)dgi.FindControl("txtRemarks");
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(), txtRemark.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);
}

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

==========================================================================================

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

=======================================================

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics