locked
How do I programtically set a link and description column in grid viewer? RRS feed

  • Question

  • User1324715958 posted

    I have a grid viewer I'm trying to setup a link list on one side and a description on the other side. I put the fields in and pulled the data back. What did I do wrong here? Its populating one column with data and filling the data again, so its like its duplicating it.

    Code:

     Private Sub BuildList()
            Try
                Dim dt As DataTable = DataFunctions.GetVisualBasicTutList
    
                gvVideoTutorials.DataSource = dt
                gvVideoTutorials.DataBind()
            Catch ex As Exception
    
            End Try
        End Sub

    Wednesday, June 8, 2016 12:34 AM

Answers

  • User-2057865890 posted

    Hi UOKSoftware,

    You can use link button in template field of gridview and Eval function to bind value in linkbutton in aspx page. Try the following code snippets.

    <div>
         <asp:GridView ID="GridView1" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White"
                    runat="server" AutoGenerateColumns="false">
               <Columns>                    
                  <asp:TemplateField HeaderText="URL">
                       <ItemTemplate>
                            <asp:LinkButton Text='<%# Eval("URL") %>' ID="lnkView" runat="server" />
                       </ItemTemplate>
                 </asp:TemplateField>
                 <asp:BoundField DataField="Description" ItemStyle-CssClass="Description" HeaderText="Description"
                            ItemStyle-Width="150" />
              </Columns>
         </asp:GridView>
    </div>
    
    
    protected void Page_Load(object sender, EventArgs e)
    {
          if (!IsPostBack)
           {
                 DataTable dt = new DataTable();
                 dt.Columns.AddRange(new DataColumn[2] { new DataColumn("URL",typeof(string)),
                            new DataColumn("Description",typeof(string)) });
    
                 dt.Rows.Add("forums.asp.net", "TestA");
                 dt.Rows.Add("forums.asp.net", "TestB");
                 dt.Rows.Add("forums.asp.net", "TestC");
                 dt.Rows.Add("forums.asp.net", "TestD");
                 GridView1.DataSource = dt;
                 GridView1.DataBind();
            }
    }
    

    Best Regards,

    Chris

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Wednesday, June 8, 2016 8:25 AM

All replies

  • User1324715958 posted

    Trying to do something like this

    Private Sub BuildList()
            Try
                Dim dt As DataTable = DataFunctions.GetVisualBasicTutList
    
                gvVideoTutorials.DataSource = dt
                gvVideoTutorials.DataBind()
                gvVideoTutorials.AutoGenerateColumns = False
    
                gvVideoTutorials.Columns(0).ItemStyle = LinkButton
            Catch ex As Exception
    
            End Try
        End Sub

    Wednesday, June 8, 2016 3:11 AM
  • User-2057865890 posted

    Hi UOKSoftware,

    You can use link button in template field of gridview and Eval function to bind value in linkbutton in aspx page. Try the following code snippets.

    <div>
         <asp:GridView ID="GridView1" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White"
                    runat="server" AutoGenerateColumns="false">
               <Columns>                    
                  <asp:TemplateField HeaderText="URL">
                       <ItemTemplate>
                            <asp:LinkButton Text='<%# Eval("URL") %>' ID="lnkView" runat="server" />
                       </ItemTemplate>
                 </asp:TemplateField>
                 <asp:BoundField DataField="Description" ItemStyle-CssClass="Description" HeaderText="Description"
                            ItemStyle-Width="150" />
              </Columns>
         </asp:GridView>
    </div>
    
    
    protected void Page_Load(object sender, EventArgs e)
    {
          if (!IsPostBack)
           {
                 DataTable dt = new DataTable();
                 dt.Columns.AddRange(new DataColumn[2] { new DataColumn("URL",typeof(string)),
                            new DataColumn("Description",typeof(string)) });
    
                 dt.Rows.Add("forums.asp.net", "TestA");
                 dt.Rows.Add("forums.asp.net", "TestB");
                 dt.Rows.Add("forums.asp.net", "TestC");
                 dt.Rows.Add("forums.asp.net", "TestD");
                 GridView1.DataSource = dt;
                 GridView1.DataBind();
            }
    }
    

    Best Regards,

    Chris

    • Marked as answer by Anonymous Thursday, October 7, 2021 12:00 AM
    Wednesday, June 8, 2016 8:25 AM