【问题标题】:Empty parameters when using FormView to update ObjectDataSource w/ Telerik RadPanelBar使用 FormView 更新带有 Telerik RadPanelBar 的 ObjectDataSource 时的空参数
【发布时间】:2013-01-03 21:21:52
【问题描述】:

问题:当通过 FormView 调用更新方法时,ObjectDataSource 正在发送(基本上)空数据对象。唯一具有值的字段是 FormView 的 DataKeyNames 属性中列出的字段。

注意:我在 FormView 中使用 Telerik RadPanelBars。

当我中断 FormView 的 ItemUpdating 事件时,我看到:

  • Keys 列表有两个项目,就像 DataKeyNames 属性一样。看起来不错。
  • OldValues 和 NewValues 字典为空。他们什么都没有。不是具有空值的字段名称 - 它们实际上是具有零项的空列表。

当我们到达 ObjectDataSource 的 Updating 事件时,我们看到一个 ProjectTask 对象只有两个值(与 DataKeyNames 字段匹配) - 所有其他字段都为空。

这是我正在使用的更新方法:

    public static void UpdateProjectTask(ProjectTask projectTask)
    {
        var dc = new PrbDataContext();
        dc.ProjectTasks.Attach(projectTask, true);
        dc.SubmitChanges();
    }

这是 ObjectDataSource 和 FormView 的标记:

    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DataObjectTypeName="ProjectBilling.Business.Data.ProjectTask"
        SelectMethod="GetProjectTask" TypeName="ProjectBilling.Business.Data.ProjectTask" UpdateMethod="UpdateProjectTask" OldValuesParameterFormatString="original_{0}" OnUpdating="ObjectDataSource1_Updating">
        <SelectParameters>
            <asp:Parameter DefaultValue="0" Name="projectTaskId" Type="Int32" />
        </SelectParameters>
    </asp:ObjectDataSource>
    <asp:FormView ID="FormView1" runat="server" DataSourceID="ObjectDataSource1" DefaultMode="Edit"
        DataKeyNames="Id,Timestamp" OnItemUpdated="FormView1_ItemUpdated" Width="600px">

重要提示:我正在使用 Telerik 控件,它们需要一个奇怪的绑定。

    DataBinder.Eval(FormView1.DataItem, "TaskTemplateId")

我也尝试了这种方法,但没有产生更好的结果:

    ((ProjectBilling.Business.Data.ProjectTask)(Container.DataItem ?? new ProjectBilling.Business.Data.ProjectTask())).BillNarrative

控件正在检索数据就好了;我只是无法更新它。

先生们,一如既往地感谢您的帮助。

这家伙好像也有类似的问题:Can’t get FormView values from ObjectDataSource on update

【问题讨论】:

    标签: c# asp.net linq-to-sql objectdatasource


    【解决方案1】:

    Telerik 的 RadPanelBar 不支持标记中的数据绑定。这就是导致 empy OldValues 和 NewValues 集合的原因。

    注意:将这个问题留在这里是因为我花了很长时间才弄清楚这一点,而且互联网上几乎没有关于它的信息。 Telerik 支持最终不得不承认数据绑定在 RadPanelBar 中不起作用。

    【讨论】:

      猜你喜欢
      • 2011-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多