ASP.NET C # Показать кнопки в записях gridview - PullRequest
2 голосов
/ 30 марта 2010

Я хочу добавить столбец в сетку, который содержит элемент управления кнопки. Я использую идентификатор (целое число и первичный ключ) в качестве 1-го столбца Gridview. Я хочу, чтобы, когда пользователь нажимал кнопку в любой строке сетки, я хотел определить идентификатор строки, к которой принадлежит нажатая кнопка

Vam Yip

Ответы [ 2 ]

4 голосов
/ 30 марта 2010

В шаблоне для вашего вида сетки свяжите свойство CommandArgument кнопки с идентификатором строки. Затем в событии нажатия кнопки проверьте свойство commandArgument из аргументов события. Это даст вам идентификатор

1 голос
/ 30 марта 2010

Чтобы согласиться с ответом @ Midhat, вот пример кода:

Кодовый код:

public partial class _Default : System.Web.UI.Page
{
  List<object> TestBindingList;

  protected void Page_Load(object sender, EventArgs e)
  {
    if (!IsPostBack)
    {
        TestBindingList = new List<object>();
        TestBindingList.Add(new { id = 1, name = "Test Name 1" });
        TestBindingList.Add(new { id = 2, name = "Test Name 2" });
        TestBindingList.Add(new { id = 3, name = "Test Name 3" });

        this.GridView1.DataSource = TestBindingList;
        this.GridView1.DataBind();
    }

  }

  protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
  {         
    if (e.CommandName == "Select")
    {
        int index = Convert.ToInt32(e.CommandArgument);
        this.Label1.Text = this.GridView1.DataKeys[index]["id"].ToString();
    }
  }
}

Разметка:

<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server"  
    onrowcommand="GridView1_RowCommand" DataKeyNames="id">
    <Columns>
        <asp:TemplateField HeaderText="ButtonColumn">
            <ItemTemplate>
                <asp:Button ID="Button1" runat="server" CausesValidation="false" 
                    CommandName="Select" Text="ClickForID"
                     CommandArgument="<%# ((GridViewRow)Container).RowIndex %>" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
<asp:Label ID="Label1" runat="server" Text="ID"></asp:Label>


</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...