2017-05-09 66 views
0

我在这里有一些问题。将数据添加到gridview根据gridview标题从数据库检索

如何开始编写GridView并根据GridView头逐个手动插入数据库中的数据?

我想创建GridView但数据库中的结构不一样。因此,我想根据GridView标题从数据库输入值。可能吗?

因为,在此之前,我只在GridView一次从数据库中检索。我不知道如何根据标题GridView进行检索。我是C#语言的初学者,希望你能举一些这方面的例子吗?谢谢。

以下是我迄今所做的:

<head runat="server"> 
 
    <title></title> 
 
</head> 
 
<body> 
 
    <form id="form1" runat="server"> 
 
    <div> 
 
    
 
     <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"> 
 
      <Columns> 
 
       <asp:TemplateField HeaderText="Request Date"> 
 
        <ItemTemplate> 
 
         <asp:Label ID="lblReqDate" runat="server" Text='<%# Eval("request_date") %>'></asp:Label> 
 
        </ItemTemplate> 
 
       </asp:TemplateField> 
 
       <asp:TemplateField HeaderText="A01"></asp:TemplateField> 
 
       <asp:TemplateField HeaderText="A02"></asp:TemplateField> 
 
      </Columns> 
 
     </asp:GridView> 
 
    
 
    </div> 
 
    </form> 
 
</body> 
 
</html>

+0

你是什么意思“的基础上头如何检索” ?你只需要那些来自数据库的列?网格视图标题是否在运行时更改? – Krishna

+0

是的。我想从数据库的列。但运行时的gridview更改结构。因为与数据库表格显示的gridview显示不一样。例如,我想显示A | B作为gridview标题,但在数据库A |中B在一列是产品。你明白我在说什么吗?或者你我的解释有点混乱? – NFH

+0

你的意思是你有一个数据库的列,你想显示它在网格中的两列吗? – Krishna

回答

0

考虑数据的列有一个分号(;)作为分隔符。然后按照以下步骤操作 添加带有标签的模板列。

<head runat="server"> 
 
    <title></title> 
 
</head> 
 
<body> 
 
    <form id="form1" runat="server"> 
 
    <div> 
 
    <asp:GridView ID="GridView3" runat="server" OnRowDataBound="GridView3_RowDataBound" AutoGenerateColumns="false"> 
 
      <Columns> 
 
       <asp:TemplateField HeaderText="Request Date"> 
 
        <ItemTemplate> 
 
         <asp:Label ID="lblReqDate" runat="server" Text='<%# Eval("request_date") %>'></asp:Label> 
 
        </ItemTemplate> 
 
       </asp:TemplateField> 
 
       <asp:TemplateField HeaderText="A01"> 
 
         <asp:Label ID="lblA01" runat="server" ></asp:Label> 
 
       </asp:TemplateField> 
 
       <asp:TemplateField HeaderText="A02"> 
 
         <asp:Label ID="lblA02" runat="server" ></asp:Label> 
 
       </asp:TemplateField> 
 
      </Columns> 
 
     </asp:GridView> 
 
    
 
    </div> 
 
    </form> 
 
</body> 
 
</html>

在数据网格行绑定拆分数据

现在并结合

protected void GridView3_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     Label lblA01 = (Label)e.Row.FindControl("lblA01"); 
     Label lblA02 = (Label)e.Row.FindControl("lblA02"); 
     string val = DataBinder.Eval(e.Row.DataItem, "product").ToString(); 
     string[] splittedData = val.Split(';'); 
     if (splittedData.Length > 0) 
      lblA01.Text = splittedData[0]; 
      if (splittedData.Length > 1) 
      lblA01.Text = splittedData[1]; 
     } 
    } 
} 

希望这有助于