【问题标题】:Telerik RadGrid : Cant have Selected Item IndexTelerik RadGrid:不能有选定项目索引
【发布时间】:2015-02-17 09:48:29
【问题描述】:

在我在这里打开问题之前,我搜索并找不到像我这样的问题。 问题是,我正在构建一个 Web 应用程序并使用 Telerik radgrid 来查看记录。到这里查看没有问题,但是当我单击一行或选择一行时,我想没有行索引或选定的项目索引,而不是在 gridview 的 selectedIndexChanged 事件中发生错误,例如“索引超出范围”。在这里您可以看到下面的 aspx 部分以及 c# 代码部分。

    <telerik:RadGrid ID="groupList" runat="server" AllowFilteringByColumn="True" AllowPaging="True" CellSpacing="0" GridLines="None" Skin="Metro" 
        OnSelectedIndexChanged="groupList_SelectedIndexChanged" MasterTableView-ClientDataKeyNames="Id" MasterTableView-DataKeyNames="Id">
        <ClientSettings EnablePostBackOnRowClick="True">
            <Selecting AllowRowSelect="True"  />
            <Scrolling AllowScroll="True" UseStaticHeaders="True" />
        </ClientSettings>
        <MasterTableView DataKeyNames="Id">
        <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings>

        <RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column">
        <HeaderStyle Width="20px"></HeaderStyle>
        </RowIndicatorColumn>

        <ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column">
        <HeaderStyle Width="20px"></HeaderStyle>
        </ExpandCollapseColumn>

            <Columns>
                <telerik:GridButtonColumn ButtonType="ImageButton" CommandName="SelectRow" FilterControlAltText="Filter uniqueName column"
                      UniqueName="uniqueName">
                </telerik:GridButtonColumn>
            </Columns>

        <EditFormSettings>
        <EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn>
        </EditFormSettings>
        </MasterTableView>

        <FilterMenu EnableImageSprites="False"></FilterMenu>
    </telerik:RadGrid>

这是c#部分

protected void groupList_SelectedIndexChanged(object sender, EventArgs e)
{
    var dataItem = groupList.SelectedItems[0] as GridDataItem;
    if (dataItem != null)
    {
        var name = dataItem["Id"].Text;
    } 
}

在这里我有错误。请帮助我,并提前感谢。

【问题讨论】:

    标签: asp.net telerik radgrid


    【解决方案1】:

    您需要确定是要使用 Telerik 内置的“RowSelect”功能,还是让他们按下命令列按钮。两者都做没有意义。

    RowSelect 将允许他们选择行中的任何位置来触发“groupList_SelectedIndexChanged”事件。如果这就是你想要的,我会删除:

    <telerik:GridButtonColumn ButtonType="ImageButton" CommandName="SelectRow" FilterControlAltText="Filter uniqueName column" UniqueName="uniqueName">
    </telerik:GridButtonColumn>
    

    并保留您在标记中的其他代码。如果仍然不起作用,您可以尝试更改访问所选数据的方式,例如:

    protected void groupList_SelectedIndexChanged(object sender, EventArgs e)
    {
        var dataItem = groupList.SelectedItems[0].OwnerTableView.DataKeyValues[groupList.SelectedItems[0].ItemIndex]["id"];
    }
    

    无论哪种方式,我都会在事件上设置一个断点,并“监视”您尝试访问的数据,确保“SelectedItems”不为空。调试时观察值将打开幸福与和平的大门。

    作为仅供参考,我认为您不需要“ClientDataKeyNames”,除非您使用 getDataKeyValue(colName) 方法从客户端获取值。但这不应该给你带来麻烦......

    【讨论】:

      猜你喜欢
      • 2014-08-31
      • 2012-01-21
      • 1970-01-01
      • 2011-12-13
      • 2011-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多