Rus*_*sby 12 .net javascript asp.net jquery updatepanel
是否可以使用JavaScript或jQuery手动更新UpdatePanel?
我所拥有的是我页面顶部的TextBox.当用户离开TextBox我想运行一些服务器代码(它会将记录添加到我的数据库),然后在页面底部我有一个UpdatePanel,它将被刷新.UpdatePanel有一个GridView,它将为添加的记录添加一个条目)
Azh*_*har 21
只需调用此javascript函数即可.这里UpdatePanel1是updatepanel的ID
<script type="text/javascript">
var UpdatePanel1 = '<%=UpdatePanel1.ClientID%>';
function ShowItems()
{
if (UpdatePanel1 != null)
{
__doPostBack(UpdatePanel1, '');
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
Rus*_*sby 12
我想我得到了答案......必须在UpdatePanel中创建一个隐藏按钮然后调用
__doPostBack('<%= Button.ClientID %>','');
Run Code Online (Sandbox Code Playgroud)
虽然这是一个老问题,但我认为应该提到一个更多的解决方案.
如果您不希望依赖隐藏的按钮或虚幻的__doPostBack,则可以选择"ClientScript.GetPostBackEventReference",如此(同样相当古老但仍然很棒)页面所述:
http://www.4guysfromrolla.com/articles/033110-1.aspx
简而言之,如果您的UpdatePanel声明如下:
<asp:UpdatePanel ID="MyUpdatePanel" runat="server">...</UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
然后在JavaScript中,您可以调用此服务器端代码生成的脚本:
ClientScript.GetPostBackEventReference(MyUpdatePanel, "")
Run Code Online (Sandbox Code Playgroud)
因此,在您的aspx页面中,您可以使用以下内容:
function MyJavaScriptFunction(){
doSomeStuff();
<%=ClientScript.GetPostBackEventReference(MyUpdatePanel, "")%>
}
Run Code Online (Sandbox Code Playgroud)
解析页面时,<%和%>之间的代码将替换为实际的javascript调用,因此您可以通过在浏览器中查看页面的源代码来查看它.
它可能不比其他回复容易,但我更喜欢它,因为它不会引入任何额外的元素,__ doPostBack感觉就像一个黑客.:-)