- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
几个小时以来,我一直在为这个问题绞尽脑汁,这个问题似乎很有趣。我似乎错过了我的控件应该附带的 __doPostBack
事件,但事实并非如此。有些人建议添加:
ClientScript.GetPostBackEventReference(this, string.Empty);
然而,虽然它确实创建了我正在寻找的函数定义,但无论我做什么,页面都会在回发事件上重新加载。正如一些人提到的:
这是因为控件 ID 不匹配/未找到。
考虑到 1) 回发功能在没有被强行强制的情况下不会呈现 2) 即使在强行强行进入时,回发也无法找到合适的设置。以下是代码片段:
类定义
[ParseChildren(true)]
[PersistChildren(true)]
[ToolboxData("<{0}:Accordion runat=server></{0}:Accordion>")]
public class Accordion : DataBoundControl, IPostBackEventHandler
事件
public event JQUI_Event ItemClick;
单击处理程序、RaisePostBackEvent 和附加 __doPostBack 的 OnLoad
public void RaisePostBackEvent(string eventArgument)
{
ItemClick(null, null);
}
protected override void OnLoad(EventArgs e)
{
Page.ClientScript.GetPostBackEventReference(this, string.Empty);
base.OnLoad(e);
}
protected virtual void OnClick(EventArgs e)
{
if (ItemClick != null)
{
ItemClick(null, null);
}
}
最后是生成回发的代码:
if (ItemClick != null)
{
outPut += "<script> $(function() { $('#" + ClientID + "').find('div').on('click', function() { __doPostBack('" + UniqueID + "', '') }); }); </script>";
}
writer.Write(outPut);
如果您需要更多代码,请告诉我。我不想只是抛出一大段代码,然后告诉人们自己想办法。
编辑:
好的,调用 RaisePostBackEvent(string eventArgument)。但是,我遇到的问题是页面仍然决定重新加载。我已经测试以确保它在正确的控件中调用正确的函数(不仅仅是因为它是回发)。有没有办法将其限制为部分回发而不是完整回发?
最佳答案
See the GetPostBackEventReference documentation ,这表明它返回一个字符串,其中包含 __doPostBack
方法调用。它不是控件的注册方法。然后用您的控件呈现此字符串。当您使用自定义控件时,__doPostBack
不是自动输出。
关于c# - __doPostBack 未作为控件的一部分包含在内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17975628/
场景 1(可行)这是我创建的 POC。我有一个脚本管理器、一个 html 文本框、一个 ASP.NET 按钮、一个为上述按钮的 Click 事件设置了异步触发器的 updatepanel。对于 htm
我使用 __doPostBack 的方式是否有错误? function displaymessage() { var scl = "aaaaaa"; var pageId = ''; __
我正在编写我的第一个 asp.net 网站 在 iPhone safari 上工作。 我在 default.aspx 正文中的代码: Login Details
我有两个下拉列表 ddlCountry 和 ddlState 以及一个按钮提交。 当 ddlstate 在更新面板时。 在数据库中提交两个下拉列表存储的按钮值。 我在 Repeater Control
我想知道为什么我们使用__doPostBack方法。它是内置的 JavaScript 方法还是用户定义的函数?这段代码的作用是什么? onclick="javascript:setTimeout('_
//update button click var btn
我有一个隐藏的 asp 控件,它有一个服务器事件(值已更改)。我调用 javascript __doPostBack 方法,并作为参数发送隐藏控件的 id,这使得它在 Page_Load 之后引发 v
我的 asp.net 应用程序中有一个 html 表。单击 td 元素时,我使用 JavaScript 将 td 元素 id 存储在隐藏字段中。之后,我强制 JavaScript 中的 __dopos
几个小时以来,我一直在为这个问题绞尽脑汁,这个问题似乎很有趣。我似乎错过了我的控件应该附带的 __doPostBack 事件,但事实并非如此。有些人建议添加: ClientScript.GetPost
首先,我发现的唯一一篇帖子 ( calling-multiple-dopostback-from-javascript ) 对我的问题没有帮助,所以我不认为这篇帖子是重复的。 我的 ASPX 网页中有
我有一个表单,为了隔离问题,它有大约一打纯 HTML 复选框(不是 WebControls),所有这些都禁用。它们位于 UpdatePanel 中。 我有一个调用的链接 __doPostBack('a
当我尝试在我的一个页面上调用 __doPostBack 时出现该错误,我在项目中拥有的每个页面都使用 __doPostBack 函数,但在该特定页面中出现该 Javascript 错误。 我在网上查过
我正在尝试使用 __doPostBack() 在 ASP.NET 中创建异步回发,但我不知道该怎么做。我想使用原生 JavaScript。 像单击按钮这样的简单操作可能会触发 __doPostBack
我通过调用这样的方法用 Javscript 刷新 UpdatePanel: reloadDropDown = function (newValue) { __doPostBack("DropDow
我有以下菜单:
最近几天我们遇到了奇怪的错误。 ___doPostBack 未定义。 我们正在构建相当先进的网站,但不经常使用回发。使用回发的地方之一是 ASP.NET 登录状态控件。 它是概率性的,有时会被渲染,有
我有一个包含以下内容的内容页面... UpdatePanel1 - containing Error Display Divs contains update triggers for both bu
我在网上看到过这个 javascript:__doPostBack('ctl00$ContentPlaceHolder1$lnk2','') 检查我看到的最后一个地方的 header 没有显示服务器端
我在不希望更新 .NET 更新面板时遇到问题。 我正在结合使用 .NET Ajax 和 Twitter Bootstrap Javascript。我在一个页面上有两个更新面板(您会注意到两个面板都将
我在回发时遇到 javascript 错误。代码如下: Untitled Page function DoPostBack() { __doPostBack('But
我是一名优秀的程序员,十分优秀!