Asp.net 数据绑定到子对象声明性语法?

Asp.net 数据绑定到子对象声明性语法?,asp.net,linq-to-sql,data-binding,Asp.net,Linq To Sql,Data Binding,数据绑定到复杂“对象”的格式是什么?我有一个linq到sql类,它具有包含,即object.containedobject 我想引用声明性的子对象字段 所以我尝试了我的MySubField.MyBasicProperty,但没有成功,还有MySubField\u MyBasicProperty 谢谢你的帮助 我找到了答案,这是boundfield类的问题,而不是数据绑定 我找到了答案,这是boundfield类的问题,而不是数据绑定 我找到了解决方案,并为以后的任何人分享 您需要重写object

数据绑定到复杂“对象”的格式是什么?我有一个linq到sql类,它具有包含,即object.containedobject

我想引用声明性的子对象字段

所以我尝试了我的MySubField.MyBasicProperty,但没有成功,还有MySubField\u MyBasicProperty


谢谢你的帮助

我找到了答案,这是boundfield类的问题,而不是数据绑定


我找到了答案,这是boundfield类的问题,而不是数据绑定


我找到了解决方案,并为以后的任何人分享

您需要重写objectdatasource更新方法以替换参数名称。只有在未设置objectdatasource的ObjectTypeName属性或它们将是只读的情况下,才可能执行此操作

以下是我的例子:

protected void ObjectDataSource1_Updating(object sender, ObjectDataSourceMethodEventArgs e)
    {
        foreach (string currentKey in e.InputParameters.Keys)
        {
            if (currentKey.Contains("."))
            {
                string newKey = currentKey.Replace(".", "_");
                object myValue = null;

                if (e.InputParameters[currentKey] != null)
                    myValue = e.InputParameters[newKey];
                if (e.InputParameters.Contains(newKey))
                    e.InputParameters.Remove(newKey);

                e.InputParameters.Add(newKey, myValue);
                e.InputParameters.Remove(currentKey);

            }
        }

我找到了解决方案,并与未来的任何人分享

您需要重写objectdatasource更新方法以替换参数名称。只有在未设置objectdatasource的ObjectTypeName属性或它们将是只读的情况下,才可能执行此操作

以下是我的例子:

protected void ObjectDataSource1_Updating(object sender, ObjectDataSourceMethodEventArgs e)
    {
        foreach (string currentKey in e.InputParameters.Keys)
        {
            if (currentKey.Contains("."))
            {
                string newKey = currentKey.Replace(".", "_");
                object myValue = null;

                if (e.InputParameters[currentKey] != null)
                    myValue = e.InputParameters[newKey];
                if (e.InputParameters.Contains(newKey))
                    e.InputParameters.Remove(newKey);

                e.InputParameters.Add(newKey, myValue);
                e.InputParameters.Remove(currentKey);

            }
        }

这引入了另一个问题,即更新不再有效。建议?这引入了另一个问题,即更新不再有效。建议?还有一件事,不应该修改foreach中的集合,这样应该是固定的。还有一件事,不应该修改foreach中的集合,这样应该是固定的。