Вложенный GridView, создающий дополнительный столбец - PullRequest
0 голосов
/ 27 января 2012

У меня есть вложенная сетка, которая по какой-то причине создает дубликат столбца. Данные в столбце верны, но есть два из этих столбцов, а не один. Я не могу избавиться от этого, и я не знаю, почему он создает дубликат столбца. HTML-разметка показывает только одну сетку, но две с. Я также удостоверился, что привязка данных происходит только один раз, и это так. Какие-нибудь мысли?

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();
        }
    }
}

1 Ответ

1 голос
/ 28 января 2012

set AutoGenerateColumns = "False" во вложенной сетке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...