Проблема привязки данных в 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 ответ:
Проблема здесь в том, что у вас нет явного
<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>