Проблема привязки данных в datagridview


На самом деле, скажем, проблема в том, что, возможно, неправильно. У меня есть 2 страницы. Я могу получить строку запроса на второй странице с первой страницы. И эта строка запроса-моя критическая часть запроса. Когда режим отладки, я могу видеть результат запроса, и они будут то, что я хочу. но это не может быть показано на моем gridview. Вот мой кодовый блок: моя страница CustomerList,

public partial class CustomerList : System.Web.UI.Page
    {
        CustomerBusiness m_CustomerBusiness = new CustomerBusiness();
        COMPANY m_Company = new COMPANY();

    protected void Page_Load(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {
                    BindCustomers();
                }
            }

        private void BindCustomers()
                {
                    string CompanyName = Request.QueryString.Get("CompanyName");

                    LabelCompanyName.Text = CompanyName;
                    List<CUSTOMER> CustomerListt = m_CustomerBusiness.SelectByFirmName(CompanyName);
                    GridViewCustomerList.DataSource = CustomerListt;
                    GridViewCustomerList.DataBind();
                }
}

GridViewCustomerList:

 <asp:GridView ID="GridViewCustomerList" runat="server" 
            AutoGenerateColumns="False" BackColor="White" BorderColor="#999999" 
            BorderStyle="None" BorderWidth="1px" CellPadding="3" GridLines="Vertical" 
            ondatabinding="GridViewCustomerList_DataBinding" 
            onselectedindexchanged="GridViewCustomerList_SelectedIndexChanged" 
            Width="239px">
            <AlternatingRowStyle BackColor="#DCDCDC" />
            <FooterStyle BackColor="#CCCCCC" ForeColor="Black" />
            <HeaderStyle BackColor="#000084" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
            <RowStyle BackColor="#EEEEEE" ForeColor="Black" />
            <SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" />
            <SortedAscendingCellStyle BackColor="#F1F1F1" />
            <SortedAscendingHeaderStyle BackColor="#0000A9" />
            <SortedDescendingCellStyle BackColor="#CAC9C9" />
            <SortedDescendingHeaderStyle BackColor="#000065" />
        </asp:GridView>

CustomerList-это то, что я хочу, но моя часть привязки не работает, я не могу видеть GridViewCustomerList когда я буду руководить проектом. Я кое-что исследую. asp.net модель жизненного цикла Страницы, целевое решение, возможно, связано с этим.

1 2

1 ответ:

Проблема здесь в том, что у вас нет явного <Column> объявления в вашей разметке, и у вас есть AutoGenerateColumns свойству присвоено значение "false". Таким образом, даже если данные привязываются к элементу управления GridView, он не знает, что отображать (поэтому он ничего не отображает.

Самое простое решение здесь-просто удалить AutoGenerateColumns="False" из вашего объявления GridView (по умолчанию это "true"), и вы должны быть хороши, чтобы идти. Он будет автоматически создавать ваши столбцы на основе вашего Источник данных.

Кроме того, вы можете указать, какие столбцы вы хотите, добавив раздел columns в свой GridView.

    <columns>
      <asp:boundfield datafield="columnOne" headertext="Column 1"/>
      <asp:boundfield datafield="columnTwo" headertext="Column 2"/>
      <asp:boundfield datafield="columnThree" headertext="Column 3"/>
    </columns>
</asp:GridView>