首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ObjectDataSource.OnUpdating事件引用ObjectDataSource DataObjectType

从ObjectDataSource.OnUpdating事件引用ObjectDataSource DataObjectType
EN

Stack Overflow用户
提问于 2010-11-02 22:19:16
回答 1查看 685关注 0票数 1

我有一个使用DataObjectType (名称)的ObjectDataSource。在这种情况下,使用EmpRow传递更新和插入参数,而不是传递单个参数。

ODS由具有两个多选ListBox控件的FormView使用。因为ListBox控件将只传递一个选定的项,所以我需要在数据源更新之前将所有选定的值正确地添加到DataObject中。

因此,在ObjectDataSource.OnUpdating事件中,我希望迭代选定的项,并在传递给数据源更新方法的DataObject中调整适当的值。

我的问题是我不知道如何获得对dataobject的引用。看起来唯一的方法就是通过OrderedDictionary?是那么回事吗?我需要如何引用EmpRow对象并更新几个属性值?

有什么想法吗?

代码语言:javascript
复制
protected void dsDetail_Updating(object sender,      
    System.Web.UI.WebControls.ObjectDataSourceMethodEventArgs e)
{

    OrderedDictionary od = (OrderedDictionary) e.InputParameters;
    IDictionaryEnumerator castRowEnum = (IDictionaryEnumerator)od.GetEnumerator();

    //Now I somehow want to create an EmpRow object from the 
    //passed DataObjectType of the datasource

    FormView fv = (FormView)FormView1;
    ListBox lstLanguages = (ListBox)fv.Row.FindControl("lstSpokenLanguages");
    ListBox lstSECPSTypes = (ListBox)fv.Row.FindControl("lstSECPSTypes");

    string strSpokenLanguages = "";
    string strSECPSTypes = "";

    foreach (ListItem item in lstLanguages.Items)
    {
        if (item.Selected)
        {
            strSpokenLanguages += item.Value + ",";
        }
    }
    strSpokenLanguages = strSpokenLanguages.Substring(0,                               
                                       (strSpokenLanguages.Length - 1));


    foreach (ListItem item in lstSECPSTypes.Items)
    {
        if (item.Selected)
        {
            strSECPSTypes += item.Value + ",";
        }
    }
    strSECPSTypes = strSECPSTypes.Substring(0, (strSECPSTypes.Length - 1));

    //now i need to assign these values to the proper data object properties
    //EmpRow.cSECPSTypes = strSECPSTypes;
    //EmpRow.cSpokenLanguages = strSpokenLanguages;
}
EN

回答 1

Stack Overflow用户

发布于 2010-11-03 00:29:48

我已经得到了一个解决方案,那就是:

代码语言:javascript
复制
EmpRow empRow = (EmpRow) e.InputParameters[0];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4078576

复制
相关文章

相似问题

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