标签: registerstartupscript

RegisterStartupScript似乎不在更新面板中的页面回发上工作

好的 - 所以我正在使用一个使用自定义日期选择器控件的系统(我知道还有其他的...但为了一致性,我想了解为什么我的当前问题正在发生并修复它).

因此,带有文本框和Page_PreRender的自定义用户控件执行此操作:

protected void Page_PreRender(object sender, EventArgs e)
    {

        string clientScript = @"
        $(function(){
        $('#" + this.Date1.ClientID + @"').datepicker({dateFormat: 'dd/mm/yy', constrainInput: true});
        });";
        Page.ClientScript.RegisterStartupScript(this.GetType(), this.ClientID, clientScript, true);

        //Type t = this.GetType();
        //if (!Page.ClientScript.IsStartupScriptRegistered(t, this.ClientID))
        //{
        //    Page.ClientScript.RegisterStartupScript(t, this.ClientID, clientScript, true);
        //}
    }
Run Code Online (Sandbox Code Playgroud)

忽略注释掉的东西 - 那是我尝试不同的东西 - 没有帮助.

我的问题是,当我加载页面时,这一切都正常.但是如果我从下拉列表中选择一些导致页面回发的内容 - 当我点击我的日期字段时它们就会停止工作.就像我应该能够点击进入文本框一样,会出现一个漂亮的日历控件.但在回发后,没有出现漂亮的日历控件!

它目前全部包含在(在托管页面中)更新面板中.所以我评论了更新面板的东西,日期在页面回发后工作.所以它似乎与该更新面板有关.

有什么建议吗?

谢谢!!

c# updatepanel registerstartupscript

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

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中的动态Javascript

好.我面临的问题是我有自己的自定义控件,我做一个查询,获取记录,并根据数据动态添加HTML控件到页面.

现在有添加一些动态JavaScript的问题

我是在文字控件的帮助下完成的.

<asp:Literal runat="server" ID="latEventToolTipJqueryScripts"></asp:Literal>
Run Code Online (Sandbox Code Playgroud)

这就像一个魅力

<script language="javascript" type="text/javascript">
// <![CDATA[
    Sys.Application.add_load(WireEvents_<%=this.ID%>); // fix wiring for .NET ajax updatepanel
    $(WireEvents_<%=this.ID%>); // handle page load wiring

    function WireEvents_<%=this.ID%>() {
        <asp:Literal runat="server" ID="latEventToolTipJqueryScripts"></asp:Literal>
    }

// ]]>
</script>
Run Code Online (Sandbox Code Playgroud)

我从代码后面动态添加文字文本.

但是,将控件放在updatepanel中时,回发不会更新脚本.

编辑:Sys.Application.add_load使用updatepanel重新编写必要的功能.问题是需要代替文字的脚本在更新面板中时不会更新.

我已经尝试过ClientScript.RegisterStartupScript,但它与文字控制技巧具有相同的效果.有帮助吗?

---------------------------已解决(tnx到Pranay Rana)---------------- ------------------

摆脱了ascx方面的文字.以及Sys.Application.add_load

现在它只在后面的代码中.让我失望的是JQuery的事情.

this.strBuilderJS.Append( "<script language='javascript' type='text/javascript'>" +
                                "$(WireEvents_" + this.ID + ");" + 
                                "function WireEvents_" + this.ID + "(){"+
                                "    alert('stuff');");

this.strBuilderJS.Append(       "}</script>");
Run Code Online (Sandbox Code Playgroud)

然后

ScriptManager.RegisterStartupScript(this, this.GetType(), "strBuilderJS", strBuilderJS.ToString(), false);
Run Code Online (Sandbox Code Playgroud)

.net javascript c# asp.net registerstartupscript

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

Page.ClientScript.RegisterStartupScript不起作用 - 为什么?

我在OnInit hanlder中有一些代码

if (!Page.ClientScript.IsStartupScriptRegistered(GetType(), "MyScript"))
{
    Page.ClientScript.RegisterStartupScript(GetType(), "MyScript", GetStartupScript(), true);
}
Run Code Online (Sandbox Code Playgroud)

在这里我尝试注册一些Java脚本代码.我想让它在按钮点击事件上工作.但它没有执行.它仅在刷新页面后执行.谁能解释我为什么不执行?

thnx提前!

c# asp.net registerstartupscript

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

ASP.NET/Java - 脚本注册/重定向问题

我的页面上有一个提交按钮(服务器端按钮).

这是我点击事件的代码:

protected void SubmitButton_Click(object sender, EventArgs e)
{
    db.SaveSomething();
    Page.ClientScript.RegisterStartupScript("someScriptWhichReliesOnServerData");
    Response.Redirect("SomeOtherPage.aspx");
}
Run Code Online (Sandbox Code Playgroud)

现在,问题是,我使用注册JavaScript Page.ClientScript.RegisterStartupScript,但这不会有效,因为页面没有在回发时重新呈现(这是脚本将被执行的地方),因为相反,Response.Redirect会发生.

我能想到的唯一解决方案是让页面重定向到"意识到"我试图执行一些JavaScript,无论是QueryString,HttpContext.Current.Items还是(gulp)Session.

  • QueryString - 不是一个选项,因为它是我试图执行的JavaScript.
  • HttpContext.Current.Items - 也不是一个选项,因为我正在做一个Response.Redirect(它丢失了请求级数据,我也不能使用Server.Transfer因为这对URL重写不好).
  • 会议 - 当然,但不理想.

还有其他想法/建议吗?

编辑澄清:

JavaScript即时执行是对Facebook客户端API的调用,以发布到用户的墙上.它必须在客户端完成.我传递给脚本的东西,如"标题","消息","动作链接"等.基本上是一堆JSON.但关键是这个数据是在回发时创建的,所以我不能在客户端点击时执行这个功能.

所以我想要完成的是提交按钮点击,执行一些JavaScript并进行重定向(不必按顺序,只需要发生).

javascript asp.net redirect page-lifecycle registerstartupscript

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

如何在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万
查看次数