2012-05-16 3 views
2

실제로 문제가 잘못되었다고 말할 수 있습니다. 나는 2 페이지가있다. 첫 번째 페이지의 두 번째 페이지에서 쿼리 문자열을 가져올 수 있습니다. 그리고이 쿼리 문자열은 쿼리의 중요한 부분입니다. 디버그 모드 일 때, 나는 질의 결과를 볼 수 있고, 나는 그들이 원하는 것일 것이다. 하지만 내 gridview에 표시 할 수 없습니다. 여기 내 코드 블록 : 내하여 customerList 페이지,DataGridview에서 데이터 바인딩 문제

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 페이지 라이프 사이클 모델을 연구, 대상 솔루션 어쩌면 그와 관련이 있습니다.

+0

'GridView'에 대한 마크 업을 보여줄 수 있습니까? – jadarnel27

+0

만약 내가 그것을 볼 수 있다면, 나는 그것을 보여줄 것입니다 .. Bu t는 내가 말했듯이, 나는 디버그 모드에서 쿼리의 결과를 볼 수 있었다. – yiddow

+0

죄송합니다. (Visual Studio의) ASPX 페이지에 표시되는 'GridViewCustomerList'의 마크 업을 언급하고 있습니다. * 그 *를 질문에 추가하십시오. – jadarnel27

답변

3

여기서 문제는 마크 업에 명시적인 <Column> 선언이없고 AutoGenerateColumns property이 "false"로 설정되어 있다는 것입니다. 따라서 GridView 컨트롤에 데이터가 바인딩 되어도 표시 할 내용을 알 수 없으므로 아무 것도 표시하지 않습니다.

가장 쉬운 해결책은 바로 GridView 선언에서 AutoGenerateColumns="False"을 제거하는 것입니다 ("true") 기본적으로, 당신은 갈 수 있어야한다. 그것은 자동으로 데이터 소스를 기반으로 열을 만들 것입니다. 다른 방법으로

, 당신이 당신의 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> 
+1

감사합니다. @ jadarnel27. 여전히 나는 문제의 해결책이 단지 '거짓'= '='을 바꿀 수 있다고 믿을 수 없다.) – yiddow

+0

@yiddow 가끔은 쉽다 =) – jadarnel27