c# - RadGrid 从项目模板按钮获取选定的行索引

标签 c# asp.net telerik

我正在处理一个使用 Telerik 控件的项目。我试图弄清楚如何在 ItemTemplate 按钮单击事件中获取选定的行索引,如下面的标记所示:

<telerik:RadGrid ID="RadGrid1" runat="server" AllowFilteringByColumn="True" 
    DataSourceID="cusGrid" GridLines="None" Skin="Default" AllowPaging="True" DataKeyValue="CustomerID" 
    PageSize="500" AllowMultiRowSelection="True" ShowStatusBar="true" >
        <MasterTableView AutoGenerateColumns="False" DataKeyNames="CustomerID" DataSourceID="cusGrid">
            <RowIndicatorColumn>
                <HeaderStyle Width="20px"></HeaderStyle>
            </RowIndicatorColumn>
            <ExpandCollapseColumn>
                <HeaderStyle Width="20px"></HeaderStyle>
            </ExpandCollapseColumn>
            <Columns>
                <telerik:GridTemplateColumn UniqueName="CheckBoxTemplateColumn">
                    <ItemTemplate>
                        <asp:Button runat="server" Text="Select" OnClick="SelRecord" />
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
    ...

通常使用 GridView 我会做类似的事情:

protected void SelRecord(object sender, EventArgs e)
{
    var gRow = (GridViewRow)(sender as Control).Parent.Parent;
    var key = string.Empty;
    if (gRow != null) { key = gRow.Cells[0].Text; }
}

Telerik 控件的等效项是什么?

最佳答案

使用 CommandArgument,并使用 OnCommand 而不是 OnClick 来获取行索引:

<asp:Button ID="Button1" runat="server" CommandArgument='<%#Container.ItemIndex%>' OnCommand="Button1_Command" ... />

代码隐藏:

protected void Button1_Command(object sender, CommandEventArgs e)
{
    GridDataItem item = RadGrid1.Items[(int)e.CommandArgument];
}

关于c# - RadGrid 从项目模板按钮获取选定的行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7869930/

相关文章:

c# - 在 Telerik mvc 网格中一键插入多条记录

c# - 返回泛型类型的泛型方法

c# - 必需的属性和 JSON 属性名称

ASP.NET 使用复选框隐藏 Gridview 行

c# - MVC 5 绕过 Windows 身份验证用户的表单例份验证

javascript - 从 RadDateTimePicker 中扣除天数

c# - (等待)任务,并非所有代码路径都返回一个值

c# - 使用 File.Move 重命名文件给出 IOException

asp.net - 如何在我的 ASP.NET 应用程序中创建一个 "generic error"页面,以便它处理在提供该页面本身时触发的错误?

被 WebResource.AXD 覆盖的 CSS 属性