从代码隐藏ASP.Net和C调用JQuery函数#
我需要以编程方式禁用JQuery选项卡。选项卡位于更新面板(Ajax)中,更新面板位于ASP.NET页面中。 代码: 洛雷姆·伊普苏姆·多洛·希特·阿梅特,康塞特图尔 但拉奥里特·多洛尔·麦格纳·阿利夸姆·埃拉帕特。 洛雷姆·伊普苏姆·多洛·希特·阿梅特,康塞特图尔 阿利奎姆·埃拉特·帕特。 代码隐藏: 受保护的无效btn\u保存\u单击(对象发送者,事件参数e) { //这里我需要对面板进行放大。 }从代码隐藏ASP.Net和C调用JQuery函数#,asp.net,jquery,ajax,updatepanel,Asp.net,Jquery,Ajax,Updatepanel,我需要以编程方式禁用JQuery选项卡。选项卡位于更新面板(Ajax)中,更新面板位于ASP.NET页面中。 代码: 洛雷姆·伊普苏姆·多洛·希特·阿梅特,康塞特图尔 但拉奥里特·多洛尔·麦格纳·阿利夸姆·埃拉帕特。 洛雷姆·伊普苏姆·多洛·希特·阿梅特,康塞特图尔 阿利奎姆·埃拉特·帕特。 代码隐藏: 受保护的无效btn\u保存\u单击(对象发送者,事件参数e) { //这里我需要对面板进行放大。 } 函数btn_Save_Click不会发布页面,因此它不会调用Javascript/jque
函数btn_Save_Click不会发布页面,因此它不会调用Javascript/jquery hidetabs函数。谢谢你的帮助 听起来您需要一个具有客户端操作的按钮,而不是返回的按钮
<link type="text/css" rel="stylesheet" href="css/ui.all.css" />
<script type="text/javascript" src="jquery-latest.js"></script>
<script type="text/javascript" src="ui.core.js"></script>
<script type="text/javascript" src="ui.tabs.js"></script>
<script type="text/javascript">
//enable tabs if a deal is selcted or saved.
function EndRequestHandler(sender, args) {
var rec_id = document.getElementById('<%=hidden_value.UniqueID %>').value;
if (rec_id=="")
hidetabs();
else
showtabs();
}
hidetabs();
$(document).ready(function(){
$("#rec_entry").tabs();
});
function hidetabs(){
$(document).ready(function(){
$("#rec_entry").tabs();
$('#rec_entry').data('disabled.tabs', [1, 2, 3, 4, 5]);});
}
function showtabs(){
$(document).ready(function(){
$("#rec_entry").tabs();
$('#rec_entry').data('disabled.tabs', []);});
}
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
</script>
...html code add the tabs...
此外,虽然jQuery通常是向后兼容的,但直接引用jQuery最新的.js文件不是一个好主意。相反,我会下载一个您想要的版本,并将其静态地放在您的站点上,以直接引用已知的版本。在没有必要的情况下,在外部站点上添加对资源状态或可用性的依赖是不好的。谢谢Chris
事实上是的,解决方案的一部分是直接调用javascript函数,但在我的UpdatePanel请求结束后,我调用了javascript,而不是使用客户端控件,如下博客中所述:
现在,我的代码如下所示:
.... code to save the new record ........
UpdatePanel_mypanel.Update();
}
面板更新后,EndRequestHandler将评估一个标志(在本例中为hiddenfield),并调用启用或禁用选项卡的Javascript函数
由于我的javascript中包含以下语句,endrequesthandler得到了控制:
<script>
function myFunction(params) {
$.my_jquery(params...)
......
}
</script>
我听从了你的建议,将javascript文件包含到我的项目中。再次感谢
Ixtlan我使用了以下方法,对我来说100%正常工作: 首先,我创建一个函数,并将jquery函数写入my页面中的函数:
protected void myButton(object sender, EventArgs e)
{
.....
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "tmp", "<script type='text/javascript'>myFunction(params...);</script>", false);
}
函数myFunction(参数){
$.my_jquery(参数…)
......
}
然后,我在更新面板中的控件的事件处理程序(例如单击按钮)中使用了以下代码:
受保护的void myButton(对象发送方,事件参数e)
{
.....
ScriptManager.RegisterStartupScript(this.Page,this.GetType(),“tmp”,“myFunction(params…),”false);
}
成功@ballance我会将最后一句话一分为二,同意第一部分,而不是第二部分-添加对外部来源的引用是不好的,因为外部来源总是会发生变化,但可以显著提高加载速度,以外包静态脚本的托管,如that@rexm在小范围内,您认为这会提高性能是正确的,但最好还是引用资源的静态版本,即使jQuery的站点托管了它。对于更大的项目,我会说只需为静态资源添加一个单独的主机名。(通过@rexm午餐学习)
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
<script>
function myFunction(params) {
$.my_jquery(params...)
......
}
</script>
protected void myButton(object sender, EventArgs e)
{
.....
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "tmp", "<script type='text/javascript'>myFunction(params...);</script>", false);
}