C#ASP如何更改数据列表的数据源ID

时间:2014-08-22 16:53:22

标签: c# asp.net

如何更改Datalist DatasourceID?

我正在使用带有DataSourceId =“DataSource1”的数据源绑定的ASP datalist的c#

我有一个带有以下代码的OnCommandclick事件:

    protected void DataList4_ItemCommand(object source, DataListCommandEventArgs e)
    {
        DateTime sessionExpiry;
        string getCompany, strCompany, getUser = GetID.userSession();
        Label myLabel = (Label)e.Item.FindControl("EpicLabel");
        string strEpic = myLabel.Text;
        sessionExpiry = DateTime.MinValue;
        strCompany = GetData.companyName(strEpic);
        SetItem.cookie("SetAddEpic", strEpic, sessionExpiry);

        switch (e.CommandName)
        {
            case "RatingWatchList":
                if (getUser != "0")
                {
                    SetItem.cookie("SetAddEpic", strEpic, sessionExpiry);
                    SetItem.cookie("SetAddCompany", strCompany, sessionExpiry);
                    ScriptManager.RegisterStartupScript(Page, GetType(), "JsStatus", 
                                 "AddWatchListItem();", true);
                }
                else { ScriptManager.RegisterStartupScript(Page, GetType(), 
                    "JsStatus", "errorMessage('Please log in to use this 
                                              function!');", true); }
                break;

            case "RatingAddAlert":
                if (getUser != "0")
                {
                    SetItem.cookie("SetAddCompany", strCompany, sessionExpiry);
                    ScriptManager.RegisterStartupScript(Page, GetType(), "JsStatus", 
                                                    "AddAlert();", true);
                }
                else { ScriptManager.RegisterStartupScript(Page, GetType(), 
                      "JsStatus",   
                      "errorMessage('Please log in to use this function!');", true); }
                break;
        }
    }

但我需要更改数据源而不从ASP datalist中删除DataSourceID,所以我不能使用c#

 DataList1.datasource="NewQuery";
 DataList1.DataBind(); 

因为删除DataSourceID时命令按钮不起作用。

3 个答案:

答案 0 :(得分:0)

您的数据源应显示在HTML中,以便您可以转到页面的HTML部分并更改ID

<asp:SqlDataSource ID="dataSourceIdHere" runat="server"> 

答案 1 :(得分:0)

更新 DataSource1.SelectCommand 属性,如果已分配数据源,它将更新DataList。

答案 2 :(得分:0)

谢谢,但我需要在运行时动态更改它,所以在按钮上单击它会更改,但如果我使用DataList1.DataSource = DataQuery;我必须从ASPX(HTML)页面中删除datasourceID,这会阻止命令事件上的datalist工作。