DataGrid相同的数据显示一行,不同的数据多行显示。可以根据下面代码改成多列显示
Html Code
<
asp:datagrid
id
="dgdPrintPackingData"
runat
="server"
Visible
="False"
Width
="100%"
BorderColor
="#336666"
BorderStyle
="Double"
BorderWidth
="3px"
BackColor
="White"
CellPadding
="4"
AutoGenerateColumns
="False"
>
<
SelectedItemStyle
Font-Bold
="True"
ForeColor
="White"
></
SelectedItemStyle
>
<
ItemStyle
Font-Size
="10pt"
ForeColor
="#333333"
BackColor
="White"
></
ItemStyle
>
<
HeaderStyle
Font-Size
="10pt"
Font-Bold
="True"
ForeColor
="#004040"
BorderColor
="White"
BackColor
="White"
></
HeaderStyle
>
<
FooterStyle
ForeColor
="#333333"
BackColor
="White"
></
FooterStyle
>
<
Columns
>
<
asp:TemplateColumn
HeaderText
="Select"
>
<
HeaderTemplate
>
<
FONT
face
="宋体"
>
All
<
asp:CheckBox
id
="ckbSelectAll"
OnCheckedChanged
="cbkAllEdit_CheckedChanged"
runat
="server"
></
asp:CheckBox
></
FONT
>
</
HeaderTemplate
>
<
ItemTemplate
>
<
FONT
face
="宋体"
>
<
asp:CheckBox
id
="ckbSelect"
runat
="server"
></
asp:CheckBox
></
FONT
>
</
ItemTemplate
>
</
asp:TemplateColumn
>
<
asp:EditCommandColumn
ButtonType
="LinkButton"
UpdateText
="更新"
HeaderText
="编辑"
CancelText
="取消"
EditText
="<img runat="server" id="imgEidt" src="../../images/edit.gif" border="0"/>"
></
asp:EditCommandColumn
>
<
asp:BoundColumn
Visible
="False"
DataField
="id"
ReadOnly
="True"
HeaderText
="编号"
></
asp:BoundColumn
>
<
asp:BoundColumn
Visible
="False"
DataField
="org"
ReadOnly
="True"
HeaderText
="Org"
></
asp:BoundColumn
>
<
asp:BoundColumn
Visible
="False"
DataField
="packing_seq"
ReadOnly
="True"
HeaderText
="Packing Seq"
></
asp:BoundColumn
>
<
asp:BoundColumn
DataField
="ship_to"
ReadOnly
="True"
HeaderText
="Ship To"
></
asp:BoundColumn
>
<
asp:BoundColumn
DataField
="shipping_seq"
ReadOnly
="True"
HeaderText
="Seq"
></
asp:BoundColumn
>
<
asp:BoundColumn
DataField
="freight_term"
ReadOnly
="True"
HeaderText
="Freight"
></
asp:BoundColumn
>
<
asp:BoundColumn
DataField
="customer_name"
ReadOnly
="True"
HeaderText
="Customer Name"
></
asp:BoundColumn
>
<
asp:BoundColumn
DataField
="last_update_date"
ReadOnly
="True"
HeaderText
="Time"
></
asp:BoundColumn
>
<
asp:BoundColumn
DataField
="last_update_by"
ReadOnly
="True"
HeaderText
="User"
></
asp:BoundColumn
>
<
asp:BoundColumn
DataField
="part_no"
ReadOnly
="True"
HeaderText
="Part NO."
></
asp:BoundColumn
>
<
asp:BoundColumn
DataField
="qty"
ReadOnly
="True"
HeaderText
="Qty"
></
asp:BoundColumn
>
<
asp:BoundColumn
DataField
="grade"
ReadOnly
="True"
HeaderText
="Grade"
></
asp:BoundColumn
>
<
asp:TemplateColumn
HeaderText
="Pallet Qty"
>
<
ItemTemplate
>
<
FONT
face
="宋体"
>
<
asp:Label
id
="lblPalletQty"
runat
="server"
Text
='<%#
DataBinder.Eval(Container, "DataItem.pallet_qty") %
>
'>
</
asp:Label
>
<
asp:TextBox
Visible
="False"
id
="txtPalletQty"
runat
="server"
Text
='<%#
DataBinder.Eval(Container, "DataItem.pallet_qty") %
>
'>
</
asp:TextBox
>
</
FONT
>
</
ItemTemplate
>
</
asp:TemplateColumn
>
<
asp:TemplateColumn
HeaderText
="L*W*H"
>
<
ItemTemplate
>
<
FONT
face
="宋体"
>
<
asp:Label
id
="lblLwh"
runat
="server"
Text
='<%#
DataBinder.Eval(Container, "DataItem.lwh") %
>
'>
</
asp:Label
>
<
asp:TextBox
Visible
="False"
id
="txtLwh"
Text
='<%#
DataBinder.Eval(Container, "DataItem.lwh") %
>
' runat="server">
</
asp:TextBox
>
</
FONT
>
</
ItemTemplate
>
</
asp:TemplateColumn
>
<
asp:TemplateColumn
HeaderText
="Weight"
>
<
ItemTemplate
>
<
FONT
face
="宋体"
>
<
asp:Label
id
="lblWeight"
Text
='<%#
DataBinder.Eval(Container, "DataItem.weight") %
>
' runat="server">
</
asp:Label
>
<
asp:TextBox
Visible
="False"
id
="txtWeight"
Text
='<%#
DataBinder.Eval(Container, "DataItem.weight") %
>
' runat="server">
</
asp:TextBox
>
</
FONT
>
</
ItemTemplate
>
</
asp:TemplateColumn
>
<
asp:TemplateColumn
HeaderText
="Spl Pack Remark"
>
<
ItemTemplate
>
<
FONT
face
="宋体"
>
<
asp:Label
id
="lblRemark"
Text
='<%#
DataBinder.Eval(Container, "DataItem.remark") %
>
' runat="server">
</
asp:Label
>
<
asp:TextBox
Visible
="False"
id
="txtRemark"
runat
="server"
Text
='<%#
DataBinder.Eval(Container, "DataItem.remark") %
>
'>
</
asp:TextBox
>
</
FONT
>
</
ItemTemplate
>
</
asp:TemplateColumn
>
</
Columns
>
<
PagerStyle
Font-Size
="10pt"
HorizontalAlign
="Center"
ForeColor
="White"
BackColor
="#336666"
Mode
="NumericPages"
></
PagerStyle
>
</
asp:datagrid
>
c# Code
BindData()
#region BindData()
private void BindData(string strOrg,string strBU,string dtScheduleDate)

...{
if(this.validate())

...{

if(strOrg.Length==0)

...{
ShowMessage.alertMessage("必须选择ERP Org",this.Page);
return;
}
if(strBU.Length==0)

...{
ShowMessage.alertMessage("必须选择BU",this.Page);
return;
}


定义#region 定义
//vss表数据
DataTable vssdt=new DataTable();
//新表
DataTable myDataTable=new DataTable();
//vpcc表数据
DataTable vpcdt=new DataTable();
//vwmp表数据
DataTable vwmdt=new DataTable();


vssdt=vssh.objects.user.WH_Operation.Get_MainTainPackingInformation_vss_Data(strOrg,strBU,dtScheduleDate,oraConn);
#endregion


增加列#region 增加列

DataColumn myDataColumn;
//编号
myDataColumn= new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "id";
myDataTable.Columns.Add(myDataColumn);
//Org
myDataColumn= new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "org";
myDataTable.Columns.Add(myDataColumn);
//Ship_To
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "ship_to";
myDataTable.Columns.Add(myDataColumn);
//SEQ
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "shipping_seq";
myDataTable.Columns.Add(myDataColumn);
//Freight
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "freight_term";
myDataTable.Columns.Add(myDataColumn);
//Customer Name
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "customer_name";
myDataTable.Columns.Add(myDataColumn);
//Part NO
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "part_no";
myDataTable.Columns.Add(myDataColumn);
//Grade
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "grade";
myDataTable.Columns.Add(myDataColumn);
//Packing_Seq
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.Int64");
myDataColumn.ColumnName = "packing_seq";
myDataTable.Columns.Add(myDataColumn);
//Qty
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.Int32");
myDataColumn.ColumnName = "qty";
myDataTable.Columns.Add(myDataColumn);


//Pallet Qty
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "pallet_qty";
myDataTable.Columns.Add(myDataColumn);
//LWH
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "lwh";
myDataTable.Columns.Add(myDataColumn);
//Weight
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "weight";
myDataTable.Columns.Add(myDataColumn);
//Remark
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "remark";
myDataTable.Columns.Add(myDataColumn);
//LastUpdateBy
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "last_update_by";
myDataTable.Columns.Add(myDataColumn);
//LastUpdateDate
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "last_update_date";
myDataTable.Columns.Add(myDataColumn);

#endregion


增加行#region 增加行
System.Data.DataRow dr;
for(int i=0;i<vssdt.Rows.Count;i++)

...{
string a=vssdt.Rows[i]["packing_seq"].ToString();
//有packing_seq
if(vssdt.Rows[i]["packing_seq"]!=DBNull.Value && vssdt.Rows[i]["packing_seq"].ToString().Length!=0)

...{
vwmdt=vssh.objects.user.WH_Operation.Get_MainTainPackingInformation_vwmp_Data(long.Parse(vssdt.Rows[i]["packing_seq"].ToString()),oraConn);
for(int j=0;j<vwmdt.Rows.Count;j++)

...{
dr=myDataTable.NewRow();
dr["id"]=vssdt.Rows[i]["plan_id"];
dr["org"]=vssdt.Rows[i]["org"];
dr["ship_to"]=vssdt.Rows[i]["ship_to"];
dr["shipping_seq"]=vssdt.Rows[i]["shipping_seq"];
dr["freight_term"]=vssdt.Rows[i]["freight_term"];
dr["customer_name"]=vssdt.Rows[i]["customer_name"];
dr["part_no"]=vssdt.Rows[i]["part_no"];
dr["grade"]=vssdt.Rows[i]["grade"];
dr["packing_seq"]=vssdt.Rows[i]["packing_seq"];
dr["qty"]=vssdt.Rows[i]["qty"];
dr["pallet_qty"]=vwmdt.Rows[j]["pallet_qty"];
dr["lwh"]=vwmdt.Rows[j]["lwh"];
dr["weight"]=vwmdt.Rows[j]["weight"];
dr["remark"]=vwmdt.Rows[j]["remark"];
dr["last_update_by"]=vwmdt.Rows[j]["last_upeate_by"];
dr["last_update_date"]=vwmdt.Rows[j]["last_update_date"];
myDataTable.Rows.Add(dr);
}
}
//没有packing_seq,sum(qty)大于0
else if(vssdt.Rows[i]["qty"]!=DBNull.Value && int.Parse(vssdt.Rows[i]["qty"].ToString())>0)

...{
dr=myDataTable.NewRow();
dr["id"]=vssdt.Rows[i]["plan_id"];
dr["org"]=vssdt.Rows[i]["org"];
dr["ship_to"]=vssdt.Rows[i]["ship_to"];
dr["shipping_seq"]=vssdt.Rows[i]["shipping_seq"];
dr["freight_term"]=vssdt.Rows[i]["freight_term"];
dr["customer_name"]=vssdt.Rows[i]["customer_name"];
dr["part_no"]=vssdt.Rows[i]["part_no"];
dr["grade"]=vssdt.Rows[i]["grade"];
dr["packing_seq"]=vssdt.Rows[i]["packing_seq"];
dr["qty"]=vssdt.Rows[i]["qty"];
vpcdt=vssh.objects.user.WH_Operation.Get_MainTainPackingInformation_vpcc_Data(vssdt.Rows[i]["org"].ToString(),vssdt.Rows[i]["part_no"].ToString(),vssdt.Rows[i]["freight_term"].ToString(),oraConn);
//vpcc表是否有数据
if(vpcdt.Rows.Count>0)

...{
int qtysum=int.Parse(vssdt.Rows[i]["qty"].ToString());
int qtycon=int.Parse(vpcdt.Rows[0]["pallet_panel_qty"].ToString());
int qtym=qtysum%qtycon;
int qtyz=qtysum/qtycon;
if(qtym ==0)

...{
dr["pallet_qty"]=qtyz.ToString()+"*"+vpcdt.Rows[0]["pallet_panel_qty"].ToString();
dr["lwh"]=vpcdt.Rows[0]["lwh"].ToString();
dr["weight"]="";
dr["remark"]="";
dr["last_update_by"]="";
dr["last_update_date"]="";
myDataTable.Rows.Add(dr);
}
else

...{
dr["pallet_qty"]="1*"+qtym.ToString();
dr["lwh"]="";
dr["weight"]="";
dr["remark"]="";
dr["last_update_by"]="";
dr["last_update_date"]="";
myDataTable.Rows.Add(dr);
}
}
else

...{
dr["pallet_qty"]="";
dr["lwh"]="";
dr["weight"]="";
dr["remark"]="";
dr["last_update_by"]="";
dr["last_update_date"]="";
myDataTable.Rows.Add(dr);
}
}
//没有packing_seq,sum(qty)为0
else

...{
dr=myDataTable.NewRow();
dr["id"]=vssdt.Rows[i]["plan_id"];
dr["org"]=vssdt.Rows[i]["org"];
dr["ship_to"]=vssdt.Rows[i]["ship_to"];
dr["shipping_seq"]=vssdt.Rows[i]["shipping_seq"];
dr["freight_term"]=vssdt.Rows[i]["freight_term"];
dr["customer_name"]=vssdt.Rows[i]["customer_name"];
dr["part_no"]=vssdt.Rows[i]["part_no"];
dr["grade"]=vssdt.Rows[i]["grade"];
dr["packing_seq"]=vssdt.Rows[i]["packing_seq"];
dr["qty"]=vssdt.Rows[i]["qty"];
dr["pallet_qty"]="";
dr["lwh"]="";
dr["weight"]="";
dr["remark"]="";
dr["last_update_by"]="";
dr["last_update_date"]="";
myDataTable.Rows.Add(dr);
}
int fd=myDataTable.Rows.Count;
}


#endregion

DataGird 显示#region DataGird 显示

if(myDataTable.Rows.Count!=0)

...{
this.pnlPringPacking.Visible=true;
this.dgdPrintPackingData.Visible=true;
this.lblnodata.Visible=false;
this.dgdPrintPackingData.DataSource=myDataTable;
this.dgdPrintPackingData.DataBind();
}
else

...{
this.dgdPrintPackingData.Visible=false;
this.lblnodata.Visible=true;
}

for(int i=1;i<dgdPrintPackingData.Items.Count;i++)

...{
if(this.dgdPrintPackingData.Items[i].Cells[2].Text.Trim()==this.dgdPrintPackingData.Items[i-1].Cells[2].Text.Trim())

...{
for(int j=0;j<14;j++)

...{
this.dgdPrintPackingData.Items[i-1].Cells[j].RowSpan=2;
this.dgdPrintPackingData.Items[i].Cells[j].Visible=false;
}
}
this.dgdPrintPackingData.Columns[2].Visible=false;
}
#endregion

}
}
#endregion