2013-05-21 2 views
1

Я очень новичок в asp.net.Plz, помогите мне.Как привязать значения из базы данных к gridview?

У меня есть gridview с двумя столбцами named-property (поле шаблона) и значением (поле шаблона). Мне нужно привязать столбец свойств (т. Е. Gridview-item template (label)) из таблицы базы данных «свойства». Поля таблицы свойств - это ID и PropertyName. Как я могу связать их?

protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!IsPostBack) 
      { 
       BindView(); 


      } 

       DataTable dt1 = new DataTable(); 
       SqlDataAdapter da1 = new SqlDataAdapter("select ID,TypeName from ProductTypes", con); 
       da1.Fill(dt1); 
       DropDownList1.DataSource = dt1; 
       DropDownList1.DataValueField = "ID"; 
       DropDownList1.DataTextField = "TypeName"; 
       DropDownList1.DataBind(); 
      } 

     public void BindView() 
     { 

      DataTable dt = new DataTable(); 
      string sql = "select * from Properties"; 
      con.Open(); 
      SqlDataAdapter da = new SqlDataAdapter(sql, con); 
      da.Fill(dt); 
      GridView1.DataSource = dt; 
      GridView1.DataBind(); 
      con.Close(); 
     } 

код ASPX:

asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" 
    CellPadding="3" GridLines="Horizontal" 
    style="z-index: 1; left: 52px; top: 230px; position: absolute; height: 133px; width: 344px"> 
    <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" /> 
    <Columns> 
     <asp:TemplateField></asp:TemplateField> 
     <asp:TemplateField HeaderText="Property"> 
      <ItemTemplate> 
       <asp:Label ID="Label3" runat="server" Text='<%# Eval("PropertyName") %>' ></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Value"> 
      <ItemTemplate> 
       <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
    <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" /> 
    <PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" /> 
    <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" /> 
    <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" /> 
    <AlternatingRowStyle BackColor="#F7F7F7" /> 
</asp:GridView> 
+0

показать ваш gridView aspx Code? –

+0

, пожалуйста, проверьте приведенный выше код. –

ответ

0

ASPX страница:

<asp:GridView ID="GridView1" AutoGenerateColumns="false" runat="server"> 
     <Columns> 
      <asp:TemplateField HeaderText="ID"> 
       <ItemTemplate> 
        <asp:Label ID="lblID" Text='<%#Bind("ID") %>' runat="server"></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Property Name"> 
       <ItemTemplate> 
        <asp:Label ID="lblPropertyName" Text='<%#Bind("PropertyName") %>' runat="server"></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
    </asp:GridView> 

дт - таблица Имя столбца должно быть "ID" & "PropertyName".

+0

Вы получаете какую-либо ошибку? сохраняйте точку останова на dt и проверяйте, не строятся ли ее строки таблицы строк. – watraplion

+0

нет сообщений об ошибках. И не отображать gridview –

+0

положить точку останова и выбрать dt-> щелчок правой кнопкой мыши -> Быстрый просмотр -> посмотреть, не возвращается ли его возвращающиеся строки таблицы или пуст? – watraplion

0

Я не думаю, что ур код возникли проблемы

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
     BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" 
     CellPadding="3" GridLines="Horizontal" 
     style="z-index: 1; left: 52px; top: 230px; position: absolute; height: 133px; width: 344px"> 
     <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" /> 
     <Columns> 
      <asp:TemplateField></asp:TemplateField> 
      <asp:TemplateField HeaderText="Property"> 
       <ItemTemplate> 
        <asp:Label ID="Label3" runat="server" Text='<%# Eval("PropertyName") %>' ></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="Value"> 
       <ItemTemplate> 
        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Eval("id") %>' ></asp:TextBox> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
     <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" /> 
     <PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" /> 
     <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" /> 
     <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" /> 
     <AlternatingRowStyle BackColor="#F7F7F7" /> 
    </asp:GridView> 

ASPX КОД идеально подходит только addde Text = '<% # Eval ("ID")%>' для текстового поля

ASPX. CS код не имеющий также никаких проблем я не изменил ничего и оборотный f9

 protected void Page_Load(object sender, EventArgs e) 
      { 

       if (!IsPostBack) 
       { 
        BindView(); 


       } 

       //DataTable dt1 = new DataTable(); 
       //SqlDataAdapter da1 = new SqlDataAdapter("select ID,TypeName from ProductTypes", con); 
       //da1.Fill(dt1); 
       //DropDownList1.DataSource = dt1; 
       //DropDownList1.DataValueField = "ID"; 
       //DropDownList1.DataTextField = "TypeName"; 
       //DropDownList1.DataBind(); 

      } 
      public void BindView() 
      { 

       DataTable dt = new DataTable(); 
       string sql = "select * from Properties"; 
       //con.Open(); 
       //SqlDataAdapter da = new SqlDataAdapter(sql, con); 

       dt.Columns.Add("ID",typeof(int)); 
       dt.Columns.Add("PROPERTYNAME",typeof(string)); 

       dt.Rows.Add(25, "propety1"); 
       dt.Rows.Add(50, "property2"); 
       dt.Rows.Add(10, "propety3"); 

       // da.Fill(dt); 
       GridView1.DataSource = dt; 
       GridView1.DataBind(); 
       //con.Close(); 
      } 
     } 

отправить ур совершенную ошибку, что у получил, любое исключение или предупреждение