gpt4 book ai didi

javascript - ASP.NET:在运行时注入(inject) Javascript(启用 AJAX)

转载 作者:行者123 更新时间:2023-11-29 20:18:16 25 4
gpt4 key购买 nike

我的 Imagebutton 存在于一个 ListView 对象和一个 UpdatePanel

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:ListView ID="ListView1" runat="server">
<ItemTemplate>
<asp:ImageButton ID="btnAttach" runat="server" OnClientClick="update('Clip','false','inc')" ImageUrl="~/Images/Image.png" CommandName='<%# DataBinder.Eval(Container.DataItem, "ID")'/>
</ItemTemplate>
</asp:ListView>
</ContentTemplate>
</asp:UpdatePanel>

ListView ItemCommand 事件中,我执行检查以查看数据库中是否存在记录。如果它不存在,我只是添加它。现在,如果该记录存​​在,我想显示一个 JavascriptMessage,表明该记录已经存在。

 Private Sub ListView1_ItemCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewCommandEventArgs) Handles ListView1.ItemCommand
If Not RecordExists() Then
InsertRecord()
Else
Show JavascriptMessage (Record Already Exists!)
End If
End Sub

那我该怎么做呢?我尝试了多个不同版本的 Show JavascriptMessage,但都没有用!

最佳答案

Lav 的代码就差不多了,但是因为您的元素在 UpdatePanel 中,所以您需要进行以下更改:

sb.Append("<script language='javascript'>")
sb.Append("alert('TestMessage')")
sb.Append("</script>")

实际上,您可以去掉第 1 行和第 3 行,因为我们要告诉它自动添加脚本标签,所以我们可以简化并只说:

Dim s as String
s = "alert('TestMessage')"

现在,我们不使用 ClientScript,而是使用 ScriptManager

If Not ClientScript.IsClientScriptBlockRegistered(t, "PopupScript") Then
ClientScript.RegisterClientScriptBlock(t, "PopupScript", sb.ToString())
End If

相反,我们将使用 ScriptManager,如下所示:

If Not ScriptManager.IsClientScriptBlockRegistered(Me, "PopupScript") Then
ScriptManager.RegisterStartupScript(Me, GetType(Page), "PopupScript", s, True)
End If

请注意,我们使用 RegisterStartupScript 方法,因为我们希望脚本在部分回发完成后立即运行。

关于javascript - ASP.NET:在运行时注入(inject) Javascript(启用 AJAX),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5292920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com