将按钮添加到 Gridview 的右端

Add button to right end of Gridview

我有一个 AutoGenerateColumns 设置为 FALSE 的 gridview。我手动添加了列(BoundField 和 ButtonField)以确保按钮显示在最后一列,因为如果 AutoGenerateColumns 设置为 TRUE,则添加的 ButtonField 的默认位置在第一列。

并且将 AutoGenerateColumns 设置为 TRUE,下面的代码可以正常工作。但是,如果我将其更改为 false 并添加 BoundFields 和 ButtonField,它就不起作用。查询工作正常,如果 AutoGenerateColumns 设置为 TRUE,我已经看到 Gridview 的填充没有问题。

请帮忙解决。我希望按钮位于列的右侧。因此下面的 aspx 设计。

代码:

<asp:GridView ID="GridView1" runat="server" BackColor="White" BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="4" ForeColor="Black" GridLines="Vertical" Width="100%" EmptyDataText="No records to display." AutoGenerateColumns="False">
    <AlternatingRowStyle BackColor="White" />
    <Columns>
        <asp:BoundField HeaderText="COL1" />
        <asp:BoundField HeaderText="COL2" />
        <asp:BoundField HeaderText="COL3" />
        <asp:BoundField HeaderText="COL4" />
        <asp:BoundField HeaderText="COL5" />
        <asp:ButtonField ButtonType="Button" Text="Update"/>
    </Columns>
    ........
 </asp:GridView>


DataTable GetData()
{
    DataTable dt = new DataTable();
    string LoginDbCS = ConfigurationManager.ConnectionStrings["UserDetails"].ConnectionString;
    SqlConnection Conn = new SqlConnection(LoginDbCS);
    SqlCommand Command = new SqlCommand("SELECT [COL1], [COL2], [COL3], [COL4], [COL5] FROM dbo.tableUser WHERE @User = Username", Conn);

    try
    {
        Conn.Open();
        Command.Parameters.Add("User", SqlDbType.NVarChar).Value = Username;

        SqlDataAdapter adpt = new SqlDataAdapter(Command);
        adpt.Fill(dt);
        Conn.Close();
    }
    catch (Exception Er)
    {
        ....
        if (Conn != null)
            Conn.Dispose();
        }
        ....
    }
    return dt;
}

protected void Page_Load(object sender, EventArgs e)
{
    ....
    GridView1.DataSource = GetData();
    GridView1.DataBind();
    ....
}

试试这个

<asp:GridView ID="GridView1" runat="server" BackColor="White" BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="4" ForeColor="Black" GridLines="Vertical" Width="100%" EmptyDataText="No records to display." AutoGenerateColumns="False">
    <AlternatingRowStyle BackColor="White" />
    <Columns>
        <asp:BoundField DataField="COL1" HeaderText="COL1" />
        <asp:BoundField DataField="COL2" HeaderText="COL2" />
        <asp:BoundField DataField="COL3" HeaderText="COL3" />
        <asp:BoundField DataField="COL4" HeaderText="COL4" />
        <asp:BoundField DataField="COL5" HeaderText="COL5" />
        <asp:CommandField ShowSelectButton="True" SelectText="Update"/>
    </Columns>
    ........
 </asp:GridView>

然后为 SelectedIndexChanged 创建一个事件来处理选定的行