标签: objectdatasource

使用多个datapagerfield多次调用objectDatasource中的SelectMethod

好的,所以这里是设置.我正在构建一个页面,其中包含一个listview,一个datapager和3个datapagerfield(2个NextPreviousPagerField,1个NumericPagerField),以及一个objectdatasource来将所有这些结合在一起.

在我将一个断点放入objectdatsource控件中指定的SelectMethod之前,一切正常.对于每个datapagerfield控件,它似乎都在调用selectmethod和selectcount方法.因此,无论何时用户进行分页,它都会调用数据库6次而不是2次(我没有打开缓存atm).如果我删除一个datapagerfield,它将删除2个调用.

现在这是在VS2008中的asp.net 3.5 SP1中构建的.当我将相同的代码文件复制到asp.net 4.0 VS2010解决方案时,它的重复调用似乎已经消失.

这是asp.net 3.5 SP1中的错误吗?

提前致谢

asp.net listview objectdatasource datapager

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

这是一个Asp.net/Ajax错误吗?Javascript错误和对象数据源

创建一个新的Web应用程序(我使用的是Visual Studio 2008版本9.0.30729.1 SP)

在Aspx页面中,将Form标签替换为:(可能需要更改类型名称以匹配您的页面名称)

<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True" />
    <div>
        <asp:DropDownList runat="server" DataSourceID="ObjectDataSource1">
        </asp:DropDownList>
        <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="Data" TypeName="WebApplication1.WebForm2"
            OnObjectCreating="ObjectDataSource1_ObjectCreating"></asp:ObjectDataSource>
    </div>
    </form>
Run Code Online (Sandbox Code Playgroud)

在服务器页面上,添加以下功能:

public IEnumerable<string> Data()
{
    return new string[] { "some data", "foo", "bar" };
}
Run Code Online (Sandbox Code Playgroud)

然后添加此事件处理程序:

protected void ObjectDataSource1_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
{
    e.ObjectInstance = this;
}
Run Code Online (Sandbox Code Playgroud)

现在运行应用程序.我得到"Sys is undefined"脚本错误.自动脚本的大部分完全丢失.

现在注释掉对象实例行,

protected void ObjectDataSource1_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
{
    //e.ObjectInstance = this;
}
Run Code Online (Sandbox Code Playgroud)

现在,当您运行应用程序时,没有脚本错误.

这里发生了什么?

c# asp.net objectdatasource scriptmanager visual-studio-2008

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

ObjectDataSource没有要插入的值

我正在使用ObjectDataSource来执行CRUD操作.出于某种原因,我得到一个"ObjectDataSource'ObjectDataSource1'没有要插入的值.检查'values'字典是否包含值."

有什么建议?

我知道这个控件继承自ObjectDataSource控件.根据文档http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.insertmethod.aspx

如果设置了DataObjectTypeName属性,则以不同的方式解析该方法.ObjectDataSource查找具有在InsertMethod属性中指定的名称的方法,该属性采用DataObjectTypeName属性中指定的类型的一个参数.

这就是我的ObjectDataSource控件的设置方式.

<asp: ObjectDataSource ID="ObjectDataSource1" runat="server" 
                DataObjectTypeName="MyApplication.Entities.Domain.MyObject" ConflictDetection="CompareAllValues"
                OldValuesParameterFormatString="original{0}" SelectMethod="GetUserDisplays"
                InsertMethod="CreateMyObject" UpdateMethod="UpdateMyObject" DeleteMethod="DeleteDisplay">
            </asp:ObjectDataSource>
Run Code Online (Sandbox Code Playgroud)

我在InsertMethod上设置了一个断点,但是当我尝试保存表单时,应用程序甚至没有点击它.我怀疑DataObjectType由于某种原因没有被正确实例化.

我试图执行在ASPxGridview控制EditForm插入操作和DataObjectType是EF POCO它有它的一些附加属性(标记虚拟)从ObjectContext中加载相关的实体.我认为这可能是问题,但不知道如何解决它(到处寻找!!!).

任何帮助将不胜感激!

asp.net entity-framework objectdatasource entity-framework-4.1

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

如何在使用ObjectDataSource或EntityDataSource时将排序图像添加到GridView标头

我想知道GridView在使用ObjectDataSource或实体框架时我们如何在头部内使用排序图像.因为它具有直接调用功能并且还具有排序表达式.

那么,我如何使用GridView.RowCreated事件并获取排序表达式来绑定排序图像?

c# asp.net gridview entity-framework objectdatasource

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

如何在ObjectDataSource方法中将参数DefaultValue设置为空字符串?

在下面的示例中,我的Foo参数的DefaultValue传递一个null值而不是string.Empty

<asp:ObjectDataSource ID="MyDataSource" runat="server" SelectMethod="GetAll"
    UpdateMethod="MyUpdateMethod" TypeName="My.Namespace.MyProvider">
    <UpdateParameters>
        <asp:Parameter Name="Key" Type="Int16" />
        <asp:Parameter Name="Foo" Type="String" DefaultValue="" />
    </UpdateParameters>
</asp:ObjectDataSource>
Run Code Online (Sandbox Code Playgroud)

虽然我可以处理它MyUpdateMethod,有没有办法将DefaultValue字符串参数设置为空字符串?

c# asp.net string objectdatasource

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

类(业务对象)未出现在RDLC的报表数据工具箱中

我在类库(作为嵌入式资源)中创建了一个本地报表,我想使用现有的业务对象作为报表的数据源.当我尝试从"报表数据"工具箱添加业务对象时,我看不到要选择的类.我注意到的是,如果业务对象是另一个类的子类,它存在于另一个类库中,那么它就不会出现.有没有人见过这个?所以我试过的是这样的:

场景1:

班级图书馆1

  1. 报告文件夹> Report1.rdlc
  2. BO文件夹> MyBO和MySuperClass
  3. 公共类MyBO:MySuperClass

当我打开Report1.rdlc并尝试从Report Data工具箱创建一个New Object Data Source时,MyBO类是可见的,我可以选择它.如果我改变我的解决方案:

类库2命名空间ClassLibrary2 {public class MySuperClass {...}}

班级图书馆1

  1. 报告文件夹> Report1.rdlc
  2. BO文件夹> MyBO
  3. 公共类MyBO:ClassLibrary2.MySuperClass

现在,当我尝试添加MyBO类时,它不会出现在"报表数据"工具箱中.不幸的是,我正在使用一个产品,而我的Business对象必须是另一个类库中的超类的子类.

有谁知道如何解决这个问题或这是一个错误?哦,我正在使用.Net 4和VS2010.谢谢.

亲切的问候

Sidharth

objectdatasource business-objects rdlc

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

ObjectDataSource找不到具有参数的非泛型方法:

我正在尝试使用Gridview来显示来自Object数据源的数据表.它给了我错误:

ObjectDataSource 'odsStores' could not find a non-generic method 'ProcessDelete' that has parameters: ProcessID.
Run Code Online (Sandbox Code Playgroud)

我已经阅读了关于匹配大小写,匹配格式,变量这个问题的很多其他答案,但我想我已经完成了所有这些.这是aspx页面:

                <asp:GridView ID="gridStores" runat="server" AllowSorting="False" AutoGenerateColumns="False"
                    CssClass="grid-main" DataSourceID="odsStores" EnableViewState="False" OnDataBound="gridStores_DataBound"
                    OnRowDataBound="gridStores_RowDataBound">
                    <Columns>
                        <asp:TemplateField ShowHeader="False">
                            <ItemTemplate>
                                <asp:Image ID="imgModel" runat="server" AlternateText="Click to See Details" CssClass="img-details"
                                    EnableViewState="False" ImageUrl="~/img/detail.gif" />
                            </ItemTemplate>
                            <ItemStyle CssClass="grid-main-detail" />
                        </asp:TemplateField>
                        <asp:BoundField DataField="ProcessID" HeaderText="ProcessID" />
                        <asp:BoundField DataField="ProcessName" HeaderText="Process Name" ReadOnly="False" />
                        <asp:BoundField DataField="ProcessDescription" HeaderText="Process Description" ReadOnly="False" />
                        <asp:BoundField DataField="UpdateUserID" HeaderText="Last Updated By" ReadOnly="True" />
                        <asp:BoundField DataField="UpdateTimestamp" HeaderText="Last Updated" ReadOnly="True" />
                        <asp:CommandField ShowEditButton="True" />
                        <asp:CommandField ShowDeleteButton="True" /> …
Run Code Online (Sandbox Code Playgroud)

vb.net asp.net objectdatasource dataadapter

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

参数化查询''需要参数'',这是未提供的

我正在构建一个使用ObjectDataSource的应用程序.我希望我的所有患者详细信息都显示在GridView中,一旦用户选择其中的记录,我想在详细信息视图中显示特定记录的数据.

但是我有一个错误 getPatientFullDetailsbyPPS

参数化查询'(@PPS nvarchar(4000))选择*来自患者,其中PPS = @PPS'需要参数'@PPS',这是未提供的.

C#:

public static Patient GetPatientFullDetailsByPPS(string PPS)
{
    Patient patient = new Patient();

    //string CS = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;

    using (SqlConnection con = new SqlConnection(GetConnectionString()))
    {
        SqlCommand cmd = new
        SqlCommand("Select * from Patients where PPS = @PPS", con);
        SqlParameter parameter = new SqlParameter();
        parameter.ParameterName = "@PPS";
        parameter.Value = PPS;
        cmd.Parameters.Add(parameter);
        con.Open();
        SqlDataReader dr = cmd.ExecuteReader(); --------> error here
        while (dr.Read())
        {
            patient.PPS = dr["PPS"].ToString();
            patient.Surname = dr["Surname"].ToString();
            patient.Name = dr["Name"].ToString();
            patient.DOB …
Run Code Online (Sandbox Code Playgroud)

c# asp.net gridview objectdatasource detailsview

0
推荐指数
1
解决办法
8821
查看次数