【问题标题】:Open simple JQM dialog from codebehind从后面的代码打开简单的 JAM 对话框
【发布时间】:2013-10-24 13:47:47
【问题描述】:

我正在使用下面的 JQM 1.0 的对话脚本。 它工作正常,但我想从 asp.net codebehind 打开它 在 page_load 上。我怎么能做到这一点?

类似的东西,但我不能让它工作:

Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "open", "opendialog", True)

// The JS:

<script type="text/javascript">
$(document).delegate('#opendialog', 'click', function () {

$('<div>').simpledialog2({
          mode: 'blank',
          headerText: 'Some Stuff',
          headerClose: true,
          blankContent:
"<ul data-role='listview'><li>Some</li><li>List</li><li>Items</li></ul>" +
"<a rel='close' data-role='button' href='#'>Close</a>" 
})
})

</script>  
<a href="#" id="opendialog" data-role="button">Open Dialog</a>

【问题讨论】:

标签: jquery asp.net jquery-mobile


【解决方案1】:

假设您的示例中的 JavaScript 已经在 HTML 中,在您的代码中只需使用 RegisterStartupScript (http://msdn.microsoft.com/en-us/library/bb310408.aspx) 触发按钮点击:

  Dim sb As System.Text.StringBuilder = New System.Text.StringBuilder()
  sb.Append("<script>")
  sb.Append("$('#opendialog').click();")
  sb.Append("</script>")

  If (Not ClientScript.IsStartupScriptRegistered("open")) Then
        ClientScript.RegisterStartupScript(Me.GetType(), "open", sb.ToString())
  End If

这里是关于RegisterStartupScript vs RegisterClientScriptBlock的讨论:Difference between RegisterStartupScript and RegisterClientScriptBlock?

【讨论】:

  • 嗨 - 谢谢你的建议,但我仍然必须在弹出窗口显示之前按下按钮,即使我将脚本放在我的 body html 中。我在这里找到了原始代码示例:dev.jtsage.com/jQM-SimpleDialog/demos2/popup.html
  • 它应该会自动触发点击事件。尝试将 sb.Append("$('#opendialog').click();") 替换为 sb.Append("alert('from server')") 并查看警报框是否出现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-24
  • 2021-08-09
  • 2011-07-24
  • 2017-02-23
  • 1970-01-01
  • 1970-01-01
  • 2012-12-04
相关资源
最近更新 更多