0

在此处输入图像描述

我的问题 :

我想使用 RadGrid 中的复选框删除所有选定的记录。如何为此编写代码。

我有一个简单 GridView 的代码,但它在 RadGrid 中不起作用。

4

1 回答 1

1

请尝试以下代码片段。

方法1

.aspx

 <telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="False"
        OnNeedDataSource="RadGrid1_NeedDataSource">
        <MasterTableView DataKeyNames="ID">
            <Columns>

                <telerik:GridBoundColumn DataField="Name" UniqueName="Name" HeaderText="Name">
                </telerik:GridBoundColumn>
                <telerik:GridTemplateColumn>
                    <ItemTemplate>
                        <asp:CheckBox ID="CheckBox1" runat="server" />
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridEditCommandColumn>
                </telerik:GridEditCommandColumn>
            </Columns>
        </MasterTableView>
    </telerik:RadGrid>

.aspx.cs

protected void Button1_Click(object sender, EventArgs e)
{
    foreach (GridDataItem item in RadGrid1.MasterTableView.Items)
    {
        CheckBox CheckBox1 = item.FindControl("CheckBox1") as CheckBox;
        if (CheckBox1 != null && CheckBox1.Checked)
        {
            // Access data key
            string strID = item.GetDataKeyValue("ID").ToString();
            // Access column
            string strName = item["Name"].Text; // "Name" is column unique name

            // delete logic comes here
        }
    }
}

方法2

.aspx

  <telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="False" 
        OnNeedDataSource="RadGrid1_NeedDataSource" 
        AllowMultiRowSelection="true">
        <MasterTableView DataKeyNames="ID">
            <Columns>
                <telerik:GridClientSelectColumn>
                </telerik:GridClientSelectColumn>
                <telerik:GridBoundColumn DataField="Name" UniqueName="Name" HeaderText="Name">
                </telerik:GridBoundColumn>
                <telerik:GridEditCommandColumn>
                </telerik:GridEditCommandColumn>
            </Columns>
        </MasterTableView>
        <ClientSettings>
            <Selecting AllowRowSelect="true" />
        </ClientSettings>
    </telerik:RadGrid>

.aspx.cs

 protected void Button1_Click(object sender, EventArgs e)
{
    foreach (GridDataItem item in RadGrid1.SelectedItems)
    {
        if (item.Selected)
        {
            // Access data key
            string strID = item.GetDataKeyValue("ID").ToString();
            // Access column
            string strName = item["Name"].Text; // "Name" is column unique name

            // delete logic comes here
        }
    }
}

上述两种方法的通用代码。

.aspx

 <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

.aspx.cs

 protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
    dynamic data = new[] {
        new { ID = 1, Name ="Name1",path="1.jpg"},
        new { ID = 2, Name = "Name2",path="2.jpg"},
        new { ID = 3, Name = "Name3",path="3.jpg"},
         new { ID = 4, Name = "Name4",path="2.jpg"},
        new { ID = 5, Name = "Name5",path="3.jpg"}
    };
    RadGrid1.DataSource = data;
}
于 2012-09-19T07:03:58.767 回答