2013-11-15 2 views
0

У меня есть таблица в SQLASP.NET GridView.Databind пустой

ID Team1  Team2 Result 
1 Eagle  Eagle — 
2 Eagle  Bull 1:0 
3 Eagle  Snake 0:2 
4 Bull  Eagle 0:1 
5 Bull  Bull — 
6 Bull  Snake 3:4 
7 Snake  Eagle 2:0 
8 Snake  Bull 4:3 
9 Snake  Snake — 

Это не удваивая вопрос. Это просто разделение задачи и некоторый производный вопрос. https://stackoverflow.com/posts/19944634/edit В этом вопросе я не хочу сортировать данные, как в сообщении 19944634.

Я просто хочу GridView.Databind. Когда я выполняю функцию BindData, я получаю вывод таблицы в браузере с правильным количеством столбцов, но он пуст. Почему?

Code-за:

namespace ASP_Web_Datagrid 
{  
    public partial class GridView_FROM_SQL : System.Web.UI.Page 
    { 
     DataTable dt_teams = new DataTable(); 
     protected void Page_Load(object sender, EventArgs e) 
     { 

      if (!Page.IsPostBack) 
      {  
       BindData(); 
       System.Data.DataTable dtUnique = dt_teams.DefaultView.ToTable(true, "name1"); 
       GridView1.DataSource = dtUnique; 
       GridView1.DataBind(); 
       Message.Text = dt_teams.Rows.Count.ToString(); 

      } 
     } 

     public void BindData() 
     { 
      string constr = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 
      const string queryTransaction = "SELECT name1 from Team_table"; 
      using (SqlConnection con1 = new SqlConnection(constr)) 
      { 
       using (SqlCommand cmd1 = new SqlCommand(queryTransaction, con1)) 
       { 
        con1.Open();     
        SqlDataAdapter ada; 
        ada = new SqlDataAdapter(cmd1);    
        ada.Fill(dt_teams); 
        cmd1.ExecuteNonQuery();     
        con1.Close(); 
       } 
      } 
     }  

Markup:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound"> 
    <Columns> 
     <asp:TemplateField HeaderText="Eagle"> 
      <ItemTemplate> 
       <asp:Literal runat="server" ID="litEagle" /> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Bull"> 
      <ItemTemplate> 
       <asp:Literal runat="server" ID="litBull" /> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Snake"> 
      <ItemTemplate> 
       <asp:Literal runat="server" ID="litSnake" /> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

ответ

1

Вы должны установить необработанный текст в разметке, чтобы связать с именем столбца в источнике данных, например:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
       OnRowDataBound="GridView1_RowDataBound"> 
    <Columns> 
     <asp:TemplateField HeaderText="Eagle"> 
      <ItemTemplate> 
       <asp:Literal runat="server" ID="litEagle" 
          Text="<%# Eval('Team1') %>" /> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Bull"> 
      <ItemTemplate> 
       <asp:Literal runat="server" ID="litBull" 
          Text="<%# Eval('Team2') %>" /> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Snake"> 
      <ItemTemplate> 
       <asp:Literal runat="server" ID="litSnake" 
          Text="<%# Eval('Result') %>" /> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 
+0

Спасибо, ** Карл Андерсон **. Я проверил бы это позже. – ifooi

+0

Когда я делаю есть Ошибка Слишком много символов в символе буква \t ошибка. Я добавляю ToString. Потому что была бы другая ошибка – ifooi

+0

И предупреждение Проверка (ASP.Net): Если это значение атрибута заключено в кавычки, кавычки должны совпадать. – ifooi

Смежные вопросы