GridView列修改

时间:2013-07-12 10:28:59

标签: html asp.net ado.net

我已将gridView绑定到包含4列的代码后面,但我希望第一列成为链接按钮。
所以我添加了itemtemplate但现在我的网格包含5列,两列相同,但我只想要一列是linkbutton列。
这是我的itemtemplate代码

<Columns>
    <asp:TemplateField HeaderText="File No">
     <ItemTemplate >
       <asp:LinkButton ID="LinkButton1" runat="server" 
         CommandArgument='<%# Eval("File") %>' Text='<%# Eval("File") %>' 
         OnCommand="show" ></asp:LinkButton>
     </ItemTemplate>
    </asp:TemplateField>
</Columns>

网格绑定背后的代码:

Bussiness_logic.GridView_Bind(GridView1, "GET_DATA"); 
 public static void GridView_Bind(GridView Grid_Name,String Procdure_name)
       {
           SqlDataAdapter dap = new SqlDataAdapter(Procdure_name, GetConnection());
           DataSet ds = new DataSet();
           dap.Fill(ds);
           Grid_Name.DataSource = ds;
           Grid_Name.DataBind();
       }

1 个答案:

答案 0 :(得分:0)

获取五列是因为您将GridView AutoGenerateColumn设置为true并在网格视图中添加了一个额外的模板列。因此GridView会为您的数据集中的所有列生成列并添加额外的列,即您的模板列。 现在解决此问题将GridView的AutoGenerateColoumn属性设置为false。定义你的列如下..

  <Columns> 
    <asp:TemplateField HeaderText="File No">
 <ItemTemplate >
 <asp:LinkButton ID="LinkButton1" runat="server" CommandArgument='<%# Eval("File") %>' Text='<%# Eval("File") %>' OnCommand="show" ></asp:LinkButton>
 </ItemTemplate> 
</asp:TemplateField> 
    <asp:BoundField DataField="NameofSecondColumnInYourDateSet" HeaderText="Column2"/>
    <asp:BoundField DataField="NameofThirdColumnInYourDateSet" HeaderText="Column3"/>
    <asp:BoundField DataField="NameofFourthColumnInYourDateSet" HeaderText="Column4"/>
    </Columns>