我在更新面板中调用以下 javascript 函数,该函数刷新我的页面,尽管它位于更新面板中!!
<script type="text/javascript" language="javascript">
function get_emp_num(source, eventArgs) {
var txt_emp_num = "<%= txt_RequestEmpNum.ClientID %>";
document.getElementById(txt_emp_num).value = eventArgs.get_value();
__doPostBack("<%=txt_RequestEmpNum.ClientID %>");
}
function get_person_num(source, eventArgs) {
var txt_person_num = "<%= txt_RequestPersonNum.ClientID %>";
document.getElementById(txt_person_num).value = eventArgs.get_value();
__doPostBack("<%=txt_RequestPersonNum.ClientID %>");
}
</script>
<小时/>
我不希望此脚本更改我的更新面板的部分回发行为。如何做到这一点?
最佳答案
您的回发控件是什么?它是否设置为更新面板上的异步触发器?根据您发布的代码,我怀疑 txt_RequestEmpNum 和 txt_RequestPersonNum 是文本框。这些控件本身不支持回发。您需要的是页面上的一个隐藏按钮,您的 JavaScript 将“单击”该按钮来发送回发。像这样的事情:
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" />
</Triggers>
<ContentTemplate>
<asp:TextBox ID="txt_RequestEmpNum" runat="server" />
<asp:TextBox ID="txt_RequestPersonNum" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
<div style="display: none;">
<asp:Button id="Button1" runat="server" OnClick="Button1_Click" />
</div>
<script>
function get_emp_num(source, eventArgs) {
// I am unsure what your intent was with the code here so I removed it
__doPostBack("<%=Button1.UniqueID %>", "");
}
function get_person_num(source, eventArgs) {
// I am unsure what your intent was with the code here so I removed it
__doPostBack("<%=Button1.UniqueID %>", "");
}
function refresh_using_jquery() {
__doPostBack($('#<%=Button1.ClientID %>').attr('name'), '');
}
</script>
关于javascript 函数在更新面板中进行完整的回发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15094274/