标签: objectdatasource

ObjectDataSource具有动态参数的Update方法

我有这个DataTable,除了序列号之外,它有一组不同的列.

| 序列| 价值| 税| 职责| 总计|

应使用唯一列名接受任意数量的列.

要显示该表,我需要使用一个ObjectDataSource,使用Select方法映射到presenter类.

class Presenter {
    [DataObjectMethod(DataObjectMethodType.Select)]
    public DataView GetDutyAndTax() { ... }
}
Run Code Online (Sandbox Code Playgroud)

然后将ObjectDataSource绑定到GridView,并将AutoGenerateColumns设置为true.Sequence是数据键.

到目前为止,这适用于选择表格.当我需要更新表时问题就出现了.ObjectDataSource一直唠叨我有一个更新方法,其参数与表中列的参数完全相同.

public void EditDutyAndTax(string Value, string Tax, string Duty, string original_Sequence) { ... }
Run Code Online (Sandbox Code Playgroud)

但我无法创建这样的方法,因为我不知道所需的列集.

我尝试使用带有可变参数列表的方法,但它不想使用它.

public void EditDutyAndTax(params object[] values) { ... }
Run Code Online (Sandbox Code Playgroud)

我现在想的是在Presenter中创建一组这样的更新方法:

public void EditDutyAndTax(string value1, string original_Sequence) { ... }
public void EditDutyAndTax(string value1, string value2, string original_Sequence) { ... }
public void EditDutyAndTax(string value1, string value2, string value3, string original_Sequence) { ... }
//an …
Run Code Online (Sandbox Code Playgroud)

c# objectdatasource

5
推荐指数
1
解决办法
2996
查看次数

启用分页后,Gridview 在回发时消失

我有一个 gridview,其 DataSourceID 属性设置为自定义 ObjectDataSource 对象。当 AllowPaging 设置为 True 时,GridView 在回发后消失。如果我将 AllowPaging 设置为 False 就可以了。有人可以为我解释一下吗?:)

编辑:我感到困惑的另一件事是我认为如果您设置DataSourceID,网格将在需要时从数据源获取数据。如果网格因为没有保存数据而消失,为什么 gridview 没有从数据源获取它需要的数据?

asp.net paging postback gridview objectdatasource

5
推荐指数
1
解决办法
2万
查看次数

FormView ConvertEmptyStringToNull和绑定

我正在使用带有ObjectDataSource的FormView并使用<%#Bind("WhateverProp")%>绑定 - 并且我的所有可空列都返回其中的类型的默认值.

看起来FormView对象没有像其他绑定容器那样的ConvertEmtpyStringToNull属性.我发现文章暗示这是VS 2005/.Net 2.0中的一个错误 - 但是没有看到任何说法是什么决议.

有没有人有任何关于如何解决这个问题的建议,而不仅仅是重新捕获ODS_Inserting事件中的所有字段?我宁愿不必编写代码来重新绑定表单上的所有绑定字段,只是为了测试空值.

asp.net data-binding formview objectdatasource .net-3.5

5
推荐指数
1
解决办法
3218
查看次数

FormView EditTemplate如何更新ObjectDataSource UpdateParameters中的值?

我有一个绑定到ObjectDataSource的FormView.

*ObjectDataSource定义(为简单起见,省略了部分内容)*

<asp:ObjectDataSource 
    ID="odsHousehold" 
    runat="server"
    TypeName="BLL.Households"
    ConflictDetection="OverwriteChanges"
    UpdateMethod="UpdateHousehold" 
    >
    <UpdateParameters>
        <asp:Parameter Name="sName" Type="String" Direction="Input" />
        <asp:Parameter Name="sAddress" Type="String" Direction="Input" DefaultValue="" />
        <asp:Parameter Name="sCity" Type="String" Direction="Input" DefaultValue="" />
        <asp:Parameter Name="sState" Type="String" Direction="Input" DefaultValue="" />
        <asp:Parameter Name="sZip" Type="String" Direction="Input" DefaultValue="" />
    </UpdateParameters>
</asp:ObjectDataSource>
Run Code Online (Sandbox Code Playgroud)

*FormView定义(为简单起见,省略了部分内容)*

   <asp:FormView 
    ID="fvHousehold"
    runat="server"
    DataKeyNames="HouseholdID"
    DataSourceID="odsHousehold"
    HorizontalAlign = "Left"
 >
<EditItemTemplate>
<asp:TextBox ID="txtHouseHoldName" runat="server" MaxLength="50" Width="100%" Text='<%# Bind("HouseholdName") %>'></asp:TextBox>
<asp:TextBox ID="txtAddress" runat="server" MaxLength="50" Width="100%" Text='<%# Bind("Address") %>'></asp:TextBox>
<asp:TextBox ID="txtCity" runat="server" MaxLength="50" Width="100%" Text='<%# Bind("City") %>'></asp:TextBox>
<asp:TextBox ID="txtState" runat="server" MaxLength="50" …
Run Code Online (Sandbox Code Playgroud)

c# asp.net formview objectdatasource

5
推荐指数
1
解决办法
1万
查看次数

了解ObjectDataSource和选择参数

我在GridView控件中有一个TemplateField,例如:

<asp:TemplateField ItemStyle-Width="150px">
   <ItemTemplate>
      <asp:DropDownList ID="ddlFields" runat="server" DataSourceID="odsOperator" DataTextField="Text" DataValueField="Value" />
      <asp:HiddenField ID="hfFieldType" runat="server" Value='<%# Eval("FieldType")%>' />
   </ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)

我有一个要从ObjectDataSource填充的下拉列表,但是我想为每一行传递一个Select Parameter,以便它以正确的值填充

<asp:ObjectDataSource ID="odsOperator" runat="server" TypeName="OperatorFieldsDAO"
   SelectMethod="FindByType">      
   <SelectParameters>
      <asp:ControlParameter ControlID="hfFieldType" Type="String" Name="Type" PropertyName="Value" />
   </SelectParameters>
</asp:ObjectDataSource>
Run Code Online (Sandbox Code Playgroud)

我的OperatorFieldsDAO类是:

public class OperatorFieldsDAO
{
    private List<OperatorField> OperatorFields
    {
        get
        {
            List<OperatorField> operatorFields = HttpContext.Current.Session["OperatorFields"] as List<OperatorField>;
            if (operatorFields == null)
            {
                operatorFields = new List<OperatorField>();
                operatorFields.Add(new OperatorField("string", "contains", "C"));
                operatorFields.Add(new OperatorField("string", "begins with", "BW"));
                operatorFields.Add(new OperatorField("string", "is equal to", "E"));
                operatorFields.Add(new OperatorField("string", "is not …
Run Code Online (Sandbox Code Playgroud)

c# asp.net gridview objectdatasource

5
推荐指数
1
解决办法
2万
查看次数

在插入方法触发后,如何防止FormView清除用户输入的值?

我一直在努力让FormViews按照微软预期的方式工作大约一天,并且已经找到了很多很棒的东西.

我可以在ObjectDataSource.Inserting事件处理程序中捕获e.Exception和e.ReturnValue,我甚至可以通过检查e.ObjectInstance来欺骗和检查ObjectDataSource.ObjectDisposing中Object的其他属性......我甚至了解到FormView的插入处理程序在ObjectDisposing处理程序之后运行所以如果发现问题,我仍然有时间对它做出反应并在FormView上将e.KeepInInsertMode设置为true.

我的问题是,似乎用户输入到Insert表单中的值无论如何都被清除.

那么,在插入方法被触发后,如何防止FormView清除?

(使用ASP.NET + VB)

我不认为在这里发布我的代码会真的做得很好,我将不得不修改它以删除机密业务逻辑的东西......所以我现在就跳过它.

编辑:

我找到了一个临时且公认的非常狡猾的解决方案(如果没有人找到真正的解决方案).

我有一个页面变量定义为:

Dim eInsertArgs As FormViewInsertedEventArgs
Run Code Online (Sandbox Code Playgroud)

然后我在ItemInserted处理程序中执行以下操作

    If boolInsertErrorOccurred = False Then
        e.KeepInInsertMode = True
        eInsertArgs = e
    Else
        eInsertArgs = Nothing
    End If
Run Code Online (Sandbox Code Playgroud)

然后在每个控件上我有这样的控件数据绑定事件:

    If IsNothing(eInsertArgs) = False Then
        Dim _sender As TextBox = sender
        _sender.Text = eInsertArgs.Values("_FieldName")
    End If
Run Code Online (Sandbox Code Playgroud)

这样做的结果是我在将ASP.NET绑定到默认(空白)模板后将值设置为提交的值.

请帮我找一个不太可怕的解决方案.:)

vb.net asp.net formview objectdatasource insert

5
推荐指数
1
解决办法
1682
查看次数

部署到SharePoint时,ObjectDataSource无法找到类型

将包含ASP.NET页面的功能部署到开发SharePoint服务器时,我收到以下错误:

System.InvalidOperationException:找不到ObjectDataSource'odsYears'的TypeName属性中指定的类型.

我们的.dll正在部署到GAC,我们的页面将被部署到12个配置单元中的相应功能目录中.我们在Sandbox SharePoint服务器上没有收到此错误.我拆解了.dll,以确保正在部署该类,一切看起来都不错.

有没有人知道为什么这不适用于我们的某个SharePoint环境?

谢谢.

asp.net sharepoint objectdatasource

5
推荐指数
1
解决办法
2286
查看次数

ObjectDataSource删除问题

环境:asp.net框架2.0

我遇到了自定义对象的Delete方法问题ObjectDataSource.的Select,InsertUpdate方法的正常工作.

这是类的代码:

public class Car
{
    public string ID {get; set;}//I know this is 3.0+ syntax.
    public string Description {get; set;}//I know this is 3.0+ syntax.

    public bool Equals(Car other)
    {
        if (ReferenceEquals(null, other)) return false;
        if (ReferenceEquals(this, other)) return true;
        return other.ID == ID;
    }

    public override bool Equals(object obj)
    {
        if (ReferenceEquals(null, obj)) return false;
        if (ReferenceEquals(this, obj)) return true;
        return obj.GetType() == typeof (Car) && Equals((Car) …
Run Code Online (Sandbox Code Playgroud)

asp.net ado.net objectdatasource

5
推荐指数
1
解决办法
2768
查看次数

修改从ObjectDataSource返回的集合

关于我正在做的事情的一些快速背景:

  • 我有一个页面,RadGrid绑定到ObjectDataSource,返回一个对象集合
  • 在那页上; 我也有两个清单; 一个包含需要与从ObjectDataSource返回的集合合并的对象的ID,另一个包含需要从该集合中删除的对象的ID
  • 目前处理这个问题的过程非常糟糕; 当一个项目被添加到这两个列表中的任何一个; 调用一个单独的方法,将myDataSource.Select()的结果转储到变量中,然后执行操作.然后网格清除其DataSourceId,并将该集合分配给DataSource属性,然后调用DataBind.(基本上解开ObjectDataSource并使用手动数据绑定代替)

我的问题如下:是否有可能以某种方式"拦截"从ObjectDataSource返回的集合,以便我可以在将集合传递给RadGrid之前对其进行操作?

如果这是不可能的; 这不是一个破坏者.我相信我可以修改Select()方法来接受这两个列表; 并在那里进行操作.我的另一个途径是为网格实现NeedDataSource()事件,并在那里进行操作.

理想情况下,我想使用第一个选项.有没有人成功这样做过?

c# data-binding objectdatasource telerik radgrid

5
推荐指数
1
解决办法
860
查看次数

asp.net objectdatasource从控件和文本框传递参数

我已经配置了a GridView来填充数据ObjectDataSource.这只ObjectDataSource需要一个绑定到a的参数DropDownList.这一切都运作良好.

当我加载页面时,它会填充DropDownList并且显示的任何字段都将DropDownList作为参数传递给ObjectDataSource进一步填充的页面GridView.

现在,我想要增强功能,并且有一个TextBoxButton旁边这个DropDownList.我想给我的用户选择一个值,或者选择一个值DropDownList,或者输入TextBox和输入更新GridView.

知道怎么做吗?

我尝试了一下dataSource.Selecting活动.但它没有像我想要的那样工作.请帮忙

c# asp.net parameters textbox objectdatasource

5
推荐指数
1
解决办法
1万
查看次数