标签: clientscript

asp按钮和历史记录返回onclientclick

嗨我有一个使用以下代码创建的asp按钮:

<asp:Button ID="btnBack" OnClientClick='javascript:history.back()' runat="server" Text="back">
</asp:Button>
Run Code Online (Sandbox Code Playgroud)

但是,现在javascript无法恢复历史记录.另一方面,如果我发出警报()它会起作用......为什么.为什么回归历史不起作用?

javascript asp.net clientscript

11
推荐指数
1
解决办法
3万
查看次数

Yii renderpartial(proccessoutput = true)避免重复的js请求

我正在创建一个使用ajaxRequest的网站,当我点击一个链接时,它将使用ajaxRequest加载.当我加载例如user/login UserController actionLogin时,我使用processOUtput将视图renderPartial设置为true,因此将生成该视图中所需的js,但是如果我在该视图中有clientScriptRegister,则如何避免生成scriptRegistered两次或多个取决于ajaxRequest?我试图Yii::app()->clientScript->isSCriptRegistered('scriptId')检查脚本是否已经注册,但似乎如果你使用了ajaxRequest,结果总是为false,因为它只在渲染完成后才为真.

控制器代码

if (Yii::app()->request->isAjaxRequest)
{
   $this->renderPartial('view',array('model'=>$model),false,true);
}
Run Code Online (Sandbox Code Playgroud)

查看代码

if (!Yii::app()->clientScript->isScriptregistered("view-script"))
   Yii::app()->clientScript->registerScript("view-script","
      $('.link').live('click',function(){
         alert('test');
     })
");
Run Code Online (Sandbox Code Playgroud)

如果我是第一次请求控制器,它可以正常工作(警报1次)但如果我再次请求同一个控制器而不刷新我的页面并且只使用ajaxRequest,如果你单击它,警报将输出两次(因为它保持在你已经注册一次的情况下生成事件)

这是相同的,如果你有CActiveForm使用jQuery功能的观点.该corescript yiiactiveform将被调用每次你的RenderPartial内.

renderpartial clientscript yii

10
推荐指数
2
解决办法
2万
查看次数

你为什么不能UnRegisterStartupScript?

在我看来你可以做的有点奇怪..

Page.ClientScript.RegisterStartupScript(this.GetType(), "KeyName", "alert('changed my mind')", true);
Run Code Online (Sandbox Code Playgroud)

然后,您无法取消注册或停止以编程方式呈现javascript.

为什么微软会这样做?

我不喜欢这里的工作.. http://hemant-vikram.blogspot.com/2005/11/unregister-startup-script-workaround.html

而且我不喜欢只是重新注册它并让它什么都不做的选择.

思考?

javascript c# asp.net clientscript

9
推荐指数
2
解决办法
1万
查看次数

如何使用ASP.NET检测页面关闭事件

我有一个带有MasterPage和内容页面的ASP.NET Web应用程序,当我单击a MenuItem打开一个新的aspx页面时,从MasterPage .如果我想关闭新的页面浏览器选项卡,我想显示一个弹出窗口或一个对话框,提醒用户他正在关闭浏览器选项卡.我不知道如何检测关闭browserTab按钮.我在新的aspx页面中使用了以下代码:

<script type="text/javascript">
    function CloseWindow() {
        alert('closing');
        window.close();
    }
</script>
Run Code Online (Sandbox Code Playgroud)

新页面代码背后:

protected void Page_Load(object sender, EventArgs e)
{
    Page.ClientScript.RegisterOnSubmitStatement(typeof(Page), "closePage", "window.onunload = CloseWindow();");
}
Run Code Online (Sandbox Code Playgroud)

Thanx在优势.

javascript c# asp.net clientscript

7
推荐指数
1
解决办法
5万
查看次数

我可以在ASp.Net MVC中使用System.Web.UI.Page.ClientScript吗?

我试图在我的ASP.Net MVC 3.0中注册STart up Script

我知道我可以在VB.Net中使用这种语法但不确定我是否可以在MVC中使用它

System.Web.UI.Page.ClientScript.RegisterStartupScript(typeof(Page), "co", "coInit(0, 'R');", true);
Run Code Online (Sandbox Code Playgroud)

Intellisense没有获取Page的属性

clientscript asp.net-mvc-3

6
推荐指数
1
解决办法
1万
查看次数

ClientScript.RegisterStartupScript不起作用

我搜索了SO和谷歌,但我似乎无法让这个工作.代码在我的asp.net应用程序中的"取消"按钮的代码隐藏点击事件中,但似乎没有关闭弹出窗口.有任何想法吗?

try
{
    if (btnCancel.Text == "Close")
    {
        String csName1 = "PopupScript";
        Type csType = this.GetType();

        ClientScriptManager cs = Page.ClientScript;
        if (!cs.IsClientScriptBlockRegistered(csType, csName1))
        {
            ClientScript.RegisterStartupScript(GetType(), "ClosePopup", "window.close();", true);
        }
    }
}  
Run Code Online (Sandbox Code Playgroud)

更新:回发后,当我查看源页面时,我看到的唯一相关代码是:

//<![CDATA[
(function() {var fn = function() {$get("ToolkitScriptManager1_HiddenField").value = '';Sys.Application.remove_init(fn);};Sys.Application.add_init(fn);})();window.close();
document.getElementById('ValidationSummary1').dispose = function() {
    Array.remove(Page_ValidationSummaries, document.getElementById('ValidationSummary1'));
}
Run Code Online (Sandbox Code Playgroud)

javascript asp.net clientscript registerstartupscript

6
推荐指数
2
解决办法
3万
查看次数

在重定向到ASP.NET c#中的另一个页面之前显示ClientScript警报?

我必须在这里解决一个问题......

我正在开发一个系统,我不断向用户显示消息,例如......我正在添加一个新客户端,我输入所有数据并按Save,ON C#我所做的就是做所有保存过程,然后我用......

ClientScript.RegisterStartupScript(this.GetType(), "Mensaje", "alert('Client Saved Successfully');", true);
Run Code Online (Sandbox Code Playgroud)

就是这样......最终显示的信息是因为我要留在同一个网站上(因为如果我想添加另一个客户端,我必须留在这个网站上,不要把我送回我的主屏幕)或者至少我没告诉系统进行重定向...

不过这是另一个例子......

如果我要编辑客户端,我将被重定向到编辑屏幕,我输入所有更改并单击SAVe,在C#上我执行所有保存更改的过程,然后我使用客户端文件作为上面的一个,并且然后 ...

this.Response.Redirect("~/Main.aspx");
Run Code Online (Sandbox Code Playgroud)

但是,我注意到如果我使用Response.Redirect,我将不再在同一页面中,警报将不会显示给用户....

这是我遇到的一个不变的问题,我想知道可能是什么解决方案......

谢谢,我希望你能帮助我

javascript asp.net alert response.redirect clientscript

4
推荐指数
1
解决办法
1万
查看次数

如何在ASP.NET c#中执行多个ClientScript.RegisterStartupScript?

我正在开发一个gridview,你可以用一个按钮下载多个文件.

这是我的gridview:

<asp:GridView ID="grdvHistorialMensajes" runat="server" AllowPaging="True" 
                    AutoGenerateColumns="False" CellPadding="4" AllowSorting="true"
                    EmptyDataText="No Hay Mensajes Enviados" ForeColor="#333333" 
                    GridLines="None" CellSpacing="1" 
                    onpageindexchanging="grdvHistorialMensajes_PageIndexChanging" 
                    onrowcommand="grdvHistorialMensajes_RowCommand" 
                    onsorting="grdvHistorialMensajes_Sorting">
                    <AlternatingRowStyle BackColor="White" ForeColor="#284775" />

                    <Columns>
                        <asp:BoundField DataField="CorreoCliente" HeaderText="Correo Del Cliente" SortExpression="CorreoCliente" />
                        <asp:BoundField DataField="CorreosAdicionales" HeaderText="Correos Adicionales" SortExpression="CorreosAdicionales" />
                        <asp:BoundField DataField="Tema" HeaderText="Tema" SortExpression="Tema" />
                        <asp:BoundField DataField="Mensaje" HeaderText="Mensaje" SortExpression="Mensaje" />

                        <asp:TemplateField HeaderText="Fecha" SortExpression="Fecha">
                            <ItemTemplate>
                                <%# DataBinder.Eval(Container.DataItem, "Fecha", "{0:dd/MM/yyyy}")%>
                            </ItemTemplate>

                            <EditItemTemplate>
                                <asp:TextBox ID="tbxFecha" runat="server" Text='<%#Bind("Fecha","{0:dd/MM/yyyy}") %>' ValidationGroup="gpEdicionAgenda">
                                </asp:TextBox>
                            </EditItemTemplate>
                        </asp:TemplateField>

                        <asp:BoundField DataField="Hora" HeaderText="Hora" SortExpression="Hora" />
                        <asp:BoundField DataField="Archivos" HeaderText="Archivos" SortExpression="Archivos" />

                        <asp:TemplateField>
                            <ItemTemplate>
                                <asp:ImageButton ID="imgBtnDescargarArchivos" …
Run Code Online (Sandbox Code Playgroud)

c# asp.net response.write clientscript registerstartupscript

1
推荐指数
2
解决办法
1万
查看次数