0
我有一個嵌套的gridview由於某種原因正在創建一個重複的列。列中的數據是正確的,但是這些列中有兩個而不是一個。我無法擺脫它,我不知道它爲什麼要創建重複的列。 HTML標記僅顯示一個網格,但顯示兩個網格。我也確保數據綁定只發生一次,而且是。有什麼想法嗎?嵌套的GridView創建一個額外的列
ASPX:
<div id="divSource" runat="server" align="center">
<asp:GridView ID="Source" runat="server" AutoGenerateColumns="False" DataKeyNames="sourceLineItem" CSSClass="viewSourceGrid" OnRowDataBound="PopulateDateCodes">
<Columns>
<asp:TemplateField InsertVisible="False" HeaderStyle-Width="70px">
<ItemTemplate>
<asp:Label CssClass="sourceHeader" runat="server" Text= '<%# "Source: " + (Container.DataItemIndex + 1).ToString() %>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="nfdBroker" HeaderText="NFD/Broker" InsertVisible="False" ReadOnly="True" SortExpression="nfdBroker" />
<asp:BoundField DataField="locationDescription" HeaderText="Material Location" SortExpression="materialLocation" />
<asp:BoundField DataField="origPkg" HeaderText="Original Packaging?" SortExpression="origPkg" />
<asp:BoundField DataField="oemCC" HeaderText="OEM C of C? " InsertVisible="False" ReadOnly="True" SortExpression="oemCC" />
<asp:BoundField DataField="minBuyQty" HeaderText="Minimum Buy Qty" SortExpression="minBuyQty" />
<asp:BoundField DataField="deliveryInfo" HeaderText="Delivery" SortExpression="delUOM" />
<asp:TemplateField InsertVisible="False" HeaderText="Date Codes" >
<ItemTemplate>
<asp:GridView ID="DateCodeGrid" runat="server" InsertVisible="False" CSSClass="viewSourceGrid" ShowHeader="false">
<Columns>
<asp:BoundField DataField="dateCode" HeaderText="DateCode" ReadOnly="true" />
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
aspx.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
public partial class Controls_ViewSource : System.Web.UI.UserControl
{
//Set the Source Line Item
public int SourceLineItem { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
this.SourceLineItem = SourceLineItem;
RequestDB db = new RequestDB();
DataSet sources = db.GetSource(int.Parse(Request.QueryString["requestNumber"]), SourceLineItem);
Source.DataSource = sources;
Source.DataBind();
}
protected void PopulateDateCodes(object sender, GridViewRowEventArgs e)
{
RequestDB db = new RequestDB();
GridViewRow row = e.Row;
//int sourceLineItem = int.Parse(Source.DataKeys[row.RowIndex].Value.ToString());
if (row.RowType == DataControlRowType.DataRow)
{
Response.Write("One <br>");
// Find the nested grid view
GridView nested = (GridView)row.FindControl("DateCodeGrid");
//Figure out how to get the sourceLineItem
DataSet dateCodes = db.GetDateCodes(71);
nested.DataSource = dateCodes;
nested.DataBind();
}
}
}
也許你可以檢查 「演練:創建一個嵌套GridView控件」 HTTP ://msdn.microsoft.com/en-us/library/aa992038(v = VS.80)的.aspx – 2012-01-27 02:43:38