gpt4 book ai didi

c# - 这是 Asp.net/Ajax 错误吗? Javascript 错误和对象数据源

转载 作者:太空宇宙 更新时间:2023-11-03 19:31:06 25 4
gpt4 key购买 nike

创建一个新的网络应用程序(我使用的是 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>

在服务器页面,添加这个函数:

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

然后添加这个事件处理程序:

protected void ObjectDataSource1_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
{
e.ObjectInstance = this;
}

现在运行应用程序。我收到“Sys is undefined”脚本错误。大部分自动脚本完全缺失。

现在注释掉 Object Instance 行,

protected void ObjectDataSource1_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
{
//e.ObjectInstance = this;
}

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

这是怎么回事?

最佳答案

我怀疑这里发生的是 ObjectDataSource 在页面完成之前被处理掉。

ObjectDisposing 事件总是在业务对象实例(业务对象在此上下文中是您的页面)被丢弃之前引发。如果业务对象实现 IDisposable 接口(interface),则在引发此事件后调用 Dispose 方法(页面实现 IDisposable,例如 Control>TemplateControl>Page

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.objectdisposing(v=vs.80).aspx

您需要通过 onobjectdisposing 事件取消对象的处置,例如。

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="Data" TypeName="WebApplication1.WebForm2"
OnObjectCreating="ObjectDataSource1_ObjectCreating"
onobjectdisposing="ObjectDataSource1_ObjectDisposing"></asp:ObjectDataSource>

处理程序:

    protected void ObjectDataSource1_ObjectDisposing(object sender, ObjectDataSourceDisposingEventArgs e)
{
e.Cancel = true;
}

虽然有趣的设计?一般来说,我更喜欢将我的对象数据源方法放在一个单独的类等中。

关于c# - 这是 Asp.net/Ajax 错误吗? Javascript 错误和对象数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4819955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com