在vb.net中通过文字生成的表中没有运行Onclick事件

Onclick event not running in tr. Table generated in vb.net through a literal

本文关键字:运行 Onclick 事件 net vb 文字      更新时间:2023-09-26

你好,我有一个不工作的onclick事件。谁能帮我看看我错过了什么?我使用文字从vb.net生成html。onclick的其他实例甚至可以在其他类似的<tr>中工作,但这一个不会工作。以这种方式生成了许多表,但其中一些表不起作用。点击根本就没发生。

<table class="redtbl"><tr><td>050-CONFIGURATION     
MANAGEMENT</td></tr><tr id="050-CONFIGURATION     
MANAGEMENTRT06420-11" style="display:none;"><td>Planned Effort: 1</td></tr><tr id="050-    CONFIGURATION     
MANAGEMENTRT06420-12" style="display:none;"><td>Actual Effort: </td></tr><tr id="050-    CONFIGURATION     
MANAGEMENTRT06420-13" style="display:none;"><td>Assignee: </td></tr><tr class ="redtr"><td onclick="run('050-CONFIGURATION     
MANAGEMENTRT06420-1')">Assigned</td></tr></table>

这是当我点击查看源代码的html代码。它的布局看起来很乱。我想知道它是否来自所有以某种方式添加的空格。这是一个很好的视图,它应该看起来像一个完美的世界。

<table class="redtbl">
  <tr>
    <td>050-CONFIGURATION MANAGEMENT</td>
  </tr>
  <tr id="050-CONFIGURATION MANAGEMENTRT06420-11" style="display:none;">
    <td>Planned Effort: 1</td>
  </tr>
  <tr id="050-CONFIGURATION MANAGEMENTRT06420-12" style="display:none;">
    <td>Actual Effort: </td>
  </tr><tr id="050-CONFIGURATION MANAGEMENTRT06420-13"style="display:none;">
    <td>Assignee: </td>
  </tr>
  <tr class ="redtr">
    <td onclick="run('050-CONFIGURATION MANAGEMENTRT06420-1')">Assigned</td>
  </tr>
</table>

当我在vb.net中编写代码时,我使用这种格式

Literal3.Text = "<table><tr><td></td></tr></table>"

这里是它在vb代码中实际生成的地方

Literal3.Text &= "<tr>" &
                            "<td>" &
                                "<table" & colortbl & ">" &
                                    "<tr>" &
                                        "<td>" & MyDataReader(5) & "</td>" &
                                    "</tr>" &
                                    "<tr id=""" & MyDataReader(5).ToString & MyDataReader(2).ToString & "1" & """ style=""display:none;"">" &
                                        "<td>Planned Effort: " & MyDataReader(6) & "</td>" &
                                    "</tr>" &
                                    "<tr id=""" & MyDataReader(5).ToString & MyDataReader(2).ToString & "2" & """ style=""display:none;"">" &
                                        "<td>Actual Effort: " & MyDataReader(7) & "</td>" &
                                    "</tr>" &
                                    "<tr id=""" & MyDataReader(5).ToString & MyDataReader(2).ToString & "3" & """ style=""display:none;"">" &
                                        "<td>Assignee: " & MyDataReader(8) & "</td>" &
                                    "</tr>" &
                                    "<tr" & colortr & ">" &
                                        "<td onclick=""run('" & MyDataReader(5).ToString & MyDataReader(2).ToString & "')"">" & MyDataReader(4) & "</td>" &
                                    "</tr>" &
                                "</table>" &
                            "</td>" &
                        "</tr>"

对不起,如果这篇文章很长,我只是想详细。

在传递给run函数的字符串中有一个换行符,这会给你一个语法错误。
尝试从数据中删除换行字符或对其进行正确编码。

你没有设置函数运行,该函数必须在你的文档头

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript">
    function run (arg) {
        window.alert(arg);
    }
    </script>
</head>
<body>
    <table class="redtbl">
        <tr>
            <td>050-CONFIGURATION MANAGEMENT</td>
        </tr>
        <tr id="050-CONFIGURATION MANAGEMENTRT06420-11" style="display:none;">
            <td>Planned Effort: 1</td>
        </tr>
        <tr id="050-CONFIGURATION MANAGEMENTRT06420-12" style="display:none;">
            <td>Actual Effort: </td>
        </tr><tr id="050-CONFIGURATION MANAGEMENTRT06420-13"style="display:none;">
            <td>Assignee: </td>
        </tr>
        <tr class ="redtr">
            <td onclick="run('050-CONFIGURATION MANAGEMENTRT06420-1')">Assigned</td>
        </tr>
    </table>
</body>
</html>
http://jsfiddle.net/gusatvo_beavis/FbJRL/

我发现这是我从数据阅读器中提取的数据,有一些奇怪的字符,这导致了换行。所以我的id是基于别的东西的