Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从代码隐藏ASP.Net和C调用JQuery函数#_Asp.net_Jquery_Ajax_Updatepanel - Fatal编程技术网

从代码隐藏ASP.Net和C调用JQuery函数#

从代码隐藏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

我需要以编程方式禁用JQuery选项卡。选项卡位于更新面板(Ajax)中,更新面板位于ASP.NET页面中。 代码:

洛雷姆·伊普苏姆·多洛·希特·阿梅特,康塞特图尔 但拉奥里特·多洛尔·麦格纳·阿利夸姆·埃拉帕特。 洛雷姆·伊普苏姆·多洛·希特·阿梅特,康塞特图尔 阿利奎姆·埃拉特·帕特。 代码隐藏: 受保护的无效btn\u保存\u单击(对象发送者,事件参数e) { //这里我需要对面板进行放大。 }
函数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);
}