用程序更改Radgrid中的表-NeedDataSource没有';不要对Rebind()开火

本文关键字:Rebind 开火 没有 程序 Radgrid -NeedDataSource | 更新日期: 2023-09-27 18:21:40

我需要将一个radgrid指向下拉列表中选择的表。因此,我有dropdownList的selectedIndexChanged事件调用Rebind(),该事件应该触发我设置数据源命令的radgrid NeedDataSource事件。但它不会着火!

protected void DropDownList1_SelectedIndexChanged1(object sender, EventArgs e)
{
    if (DropDownList1.SelectedIndex > -1)
    {
        RadGrid1.DataSource=null;
        Label1.Text = DropDownList1.SelectedItem.Text; //just for debugging
        RadGrid1.Rebind();
    }
}
protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
    string tableInUse = DropDownList1.SelectedItem.Text;
    Label2.Text = "NeedDataSource has been fired"; //just for debugging
    RadGrid1.DataSource = SqlDataSource1;
    SqlDataSource1.DeleteCommand = "DELETE FROM [" + tableInUse + "] .....";
    SqlDataSource1.SelectCommand = "SELECT * FROM [" + tableInUse + "] ORDER BY [Code]";
    SqlDataSource1.UpdateCommand = "UPDATE [" + tableInUse + "] SET ....";
}

以及标记:

<telerik:RadGrid ID="RadGrid1" runat="server" Culture="it-IT" DataSourceID="SqlDataSource1" OnNeedDataSource="RadGrid1_NeedDataSource">
            <MasterTableView DataSourceID="SqlDataSource1">
            </MasterTableView>
        </telerik:RadGrid>

不确定这是否是更改与radgrid关联的数据库表的正确方式,但至少应该触发NeedDatasource事件。我做错了什么?

用程序更改Radgrid中的表-NeedDataSource没有';不要对Rebind()开火

您不应该同时设置DataSourceID和DataSource参数;它没有启动,因为它有一个设置为数据源控件的DataSourceID,并且只是从中获得它需要的东西。你也必须澄清这一点。但是,对数据源上的事件做出反应并更改您想要的内容(选择、更新等)

可能是有意义的