首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未从会话中保存的SQLdatasource中提取ASPxCombobox

未从会话中保存的SQLdatasource中提取ASPxCombobox
EN

Stack Overflow用户
提问于 2012-03-30 16:31:35
回答 1查看 823关注 0票数 0
代码语言:javascript
复制
protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Session["SavedSQLSources"] == null)
                SavedSQLSources = new Dictionary<String, SqlDataSource>();

            SavedSQLSources.Add(ASPxComboBox1.ID, SqlDataSource1);
            SavedSQLSources.Add(ASPxComboBox2.ID, SqlDataSource2);

            Session["SavedSQLSources"] = SavedSQLSources;
        }
        else
        {
            if (Session["SavedSQLSources"] != null)
                SavedSQLSources = (Dictionary<String, SqlDataSource>)Session["SavedSQLSources"];
        }
    }

问候,我有多个ASPxCombobox,每个都有自己的数据源。因此,首先我将每个控件ID及其对应的数据源对象保存在一个字典中。

代码语言:javascript
复制
    protected void Cmb_Callback(object source, CallbackEventArgsBase e)
    {
        ASPxComboBox comboBox = (ASPxComboBox)source;
        string[] args = e.Parameter.Split('|');

        for (int i = 0; i < args.Length; ++i)
            SavedSQLSources[comboBox.ID].SelectParameters[i].DefaultValue = args[i];
        comboBox.DataSourceID = SavedSQLSources[comboBox.ID].ID;
        comboBox.DataBind();
    }

在页面上执行一些操作后,每个控件都会启动其回调,并将其数据与相应的数据源绑定。

好吧..。当直接使用数据源,但没有从保存在Session (从SavedSQLSources)中保存的数据源中获取项时,它可以完美地工作。对象的实例不应该是相同的吗?

提前谢谢你,TheRainFall。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-31 00:44:19

好吧,我放弃了字典方法,通过从客户端将每个ASPxCombobox链接到它的SqlDatasource来解决这个问题:

代码语言:javascript
复制
DataSourceID="SqlDataSource1"

然后在回调中,我使用从客户端引用的datasourceID从父容器获取sqldatasource实例:

代码语言:javascript
复制
SqlDataSource tempSqlDatasource= (SqlDataSource)comboBox.Parent.FindControl(comboBox.DataSourceID);

其主要目的是在不重新加载页面的情况下重新加载所有的组合框,尽管我可以只在客户端完成此操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9939483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档