Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程方式更改Radgrid中的表-NeedDataSource不';t重新绑定时开火()_C#_Asp.net_Telerik Grid - Fatal编程技术网

C# 以编程方式更改Radgrid中的表-NeedDataSource不';t重新绑定时开火()

C# 以编程方式更改Radgrid中的表-NeedDataSource不';t重新绑定时开火(),c#,asp.net,telerik-grid,C#,Asp.net,Telerik Grid,我需要将radgrid指向dropdownlist中选择的表。因此,我有dropdownList的selectedIndexChanged事件调用Rebind(),它应该在我设置datasource命令的地方触发radgrid NeedDataSource事件。但它不会开火 protected void DropDownList1_SelectedIndexChanged1(object sender, EventArgs e) { if (DropDownList1.SelectedI

我需要将radgrid指向dropdownlist中选择的表。因此,我有dropdownList的selectedIndexChanged事件调用Rebind(),它应该在我设置datasource命令的地方触发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事件。我做错了什么

不应同时设置DataSourceID和DataSource参数;它不会启动,因为它将DataSourceID设置为数据源控件,并从中获取所需的内容。你也必须澄清这一点。但是,对数据源上的事件做出反应并从中更改所需内容(选择、更新等)可能是有意义的。

这太棒了!谢谢你的建议。你完全正确。这解决了我的问题。