【问题标题】:Appending HTML to control and then adding an onclick event to one of the html objects?将 HTML 附加到控件,然后将 onclick 事件添加到其中一个 html 对象?
【发布时间】:2011-10-28 16:45:14
【问题描述】:

我有一个 sub 在文字控件中写出一堆 HTML。此 HTML 的一部分是我想添加 onclick 事件的图像。 onclick 只需要提醒我在同一个 sub 中可用的字符串。一旦 HTML 生成完成,要返回的字符串也将完成。所以此时我需要将 onlick 事件添加到图像中。但是我该怎么做,因为此时它无法识别控件?谢谢大家。

/**** 编辑 ****/

好吧,我改变了一些东西,我只是最后插入了图像按钮的字符串,以便返回的字符串是完整的。但是,当插入 html 时,由于标点符号,字符串会搞砸。字符串可以包含任意数量的特殊字符 :',;" 等。

这是vb.net代码隐藏中的html行

text = "<td style='background-color:#C8DBEC;width:31px;'><img style='cursor:pointer;' id='imgPrint' src='../images/Buttons/printerbtn.png' onclick='printTranscript(" + finalText + ");' /></td>"

所以我的问题是.. 我需要如何格式化 finalText 以便它将传递给 javascript 调用?

【问题讨论】:

    标签: html onclick controls


    【解决方案1】:

    我认为你的代码应该是这样的:

    text = @"<td style='background-color:#C8DBEC;width:31px;'><img style='cursor:pointer;' id='imgPrint' src='../images/Buttons/printerbtn.png' onclick='printTranscript(""" + finalText + @""");' /></td>"
    

    我在 finalText 变量(括号内)之前和之后加上双引号,否则它的值会像变量名一样在 javascript 中被解析。我还必须在两个字符串的开头放置 @ 符号才能使用双引号 (您可以在这里阅读更多信息:http://msdn.microsoft.com/en-us/library/362314fe%28v=vs.71%29.aspx

    【讨论】:

      【解决方案2】:

      你在使用 JQuery 吗?它使它非常简单

      $('#target').html(""');

      $('#imgPrint').click(function() { printTranscript(" + finalText + "); });

      我只是喜欢 JQuery

      我没有测试,但它会是这样的

      【讨论】:

      • HTML 是在 vb.net 的代码隐藏中创建的。我尝试在其中使用带有 jquery 的 registerstartupscript 来附加 html,但它对我不起作用
      【解决方案3】:

      只需将点击事件绑定到您的图像。将警报设置为 finalText,瞧。

      $("#imgPrint").click(alert(finalText));
      

      $("#imgPrint").click(printTranscript(finalText));
      

      finalText 可以存储为图像上的 alt 或标题,然后您也可以使用 jQuery 抓取它,或者您可以将其设置在不显示的字段中。

      使用上面的代码,您不需要在图像上单击。

      【讨论】:

        猜你喜欢
        • 2023-03-08
        • 1970-01-01
        • 2012-06-09
        • 1970-01-01
        • 2019-06-08
        • 1970-01-01
        • 1970-01-01
        • 2016-03-14
        相关资源
        最近更新 更多