Динамическое добавление строк в Gridview в ASP.NET (C #) - PullRequest
0 голосов
/ 16 июня 2011
        <asp:GridView ID="GridView1" runat="server">
        <Columns>
            <asp:TemplateField HeaderText="FileName">
                <ItemTemplate>
                    <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="" Text=""></asp:HyperLink>
                </ItemTemplate>
            </asp:TemplateField>
     </Columns>
    </asp:GridView>

файл aspx.cs

    SqlCommand comm = new SqlCommand(Select 
        FileUpload.FileName AS FileName,
        FileUpload.FilePath AS PATH,
        SubjectMaster.SubjectName AS Subject,
        MemberPersonalInformation.FirstName As SharedBy 
    from FileUpload",conn)

Мне нужно напечатать FileName(As Hyperlink), SharedBy, Subject в сетке, как я могу это сделать?Мне нужно сделать что-то вроде этого ... Но ниже подход не работает

        conn.Open();
        SqlDataReader rdr = comm.ExecuteReader();

        int i = 0;
        while (rdr.Read())
        {

            string fip = rdr["PATH"].ToString();
           HyperLink h1 = (HyperLink)GridView1.Rows[i].Cells[0].FindControl("Hyperlink1");
                h1.Text = rdr["FileName"].ToString();
                h1.NavigateUrl = "download.aspx?filepath=" + fip;

                GridView1.Rows[i].Cells[1].Text = rdr["SharedBy"].ToString();
                GridView1.Rows[i].Cells[2].Text = rdr["Subject"].ToString();
                GridView1.Rows[i].Cells[3].Text = rdr["PATH"].ToString();
                //GridView1.Rows[i].Rows.Add(di);

              i++;

        }

1 Ответ

0 голосов
/ 16 июня 2011

Попробуйте это:

<asp:GridView ID="GridView1" runat="server">
  <Columns>
    <asp:TemplateField HeaderText="FileName">
      <ItemTemplate>
        <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#Eval("PATH")%>' Text='<%#Eval("FileName")%>'></asp:HyperLink>,
        <asp:Literal ID="Literal1" runat="server" Text='<%#Eval("SharedBy")+", "+ Eval("Subject")%>' />
      </ItemTemplate>
    </asp:TemplateField>
  </Columns>
/asp:GridView>

В CS вы можете связать представление сетки с вашим запросом, как это:

conn.Open();
SqlCommand comm = new SqlCommand("your query");
SqlDataReader rdr = comm.ExecuteReader(CommandBehavior.CloseConnection);
GridView1.DataSource = rdr;
GridView1.DataBind();
rdr.close();
...