嗨我有一个使用以下代码创建的asp按钮:
<asp:Button ID="btnBack" OnClientClick='javascript:history.back()' runat="server" Text="back">
</asp:Button>
Run Code Online (Sandbox Code Playgroud)
但是,现在javascript无法恢复历史记录.另一方面,如果我发出警报()它会起作用......为什么.为什么回归历史不起作用?
我正在创建一个使用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内.
在我看来你可以做的有点奇怪..
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
而且我不喜欢只是重新注册它并让它什么都不做的选择.
思考?
我有一个带有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在优势.
我试图在我的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的属性
我搜索了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) 我必须在这里解决一个问题......
我正在开发一个系统,我不断向用户显示消息,例如......我正在添加一个新客户端,我输入所有数据并按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,我将不再在同一页面中,警报将不会显示给用户....
这是我遇到的一个不变的问题,我想知道可能是什么解决方案......
谢谢,我希望你能帮助我
我正在开发一个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