如何在asphtml中输出asp标签

时间:2015-09-18 01:58:05

标签: c# html asp.net

我想在我的asp页面上找到一个按钮:

Div1.InnerHtml += "<td><input type=\"submit\" ID=\"Button3\" runat=\"server\" OnClick=\"Button3_Click\" value = \"start\" ></button></td> ";` 

错误“Button3_Click”但错误“0x800a1391 - Microsoft JScript运行时错误:'Button3_Click'未定义”不断出现。 Button3_Click也用于同一环境并在那里工作。

编辑 有关我的代码工作的更多信息

步骤1)接收一个字符串,将其拆分并形成一个二维数组。所有这些都是在c#

中完成的

步骤2)然后将输出发送到ASP页面以显示在表格中。该表将有5列,其中n行。前3个cols是来自上面字符串的数据,接下来的2个行是操作数据的按钮。

下面列出了一些代码段

public void createarray(string results)
    {
        using (StringReader reader = new StringReader(results))
        {
            int lineNo = -1;
            string line;
            int columncount = 3;
            Div1.InnerHtml += "<table border = \"1\" style = \" font-    size:13px ; width:20% \" ;>  ";
            while ((line = reader.ReadLine()) != null)
            {
                ++lineNo;
                twodarray(lineNo, columncount, line);

            }// while
        }// using 
        Div1.InnerHtml += "</table>";
    }// end of function 


    public Array[] twodarray(int rowcount, int columncount, string parts)
    {
        string[,] twoD = new string[10000, 10];
        string[] parts2 = parts.Split(new string[] { "," }, StringSplitOptions.None);
        int y = rowcount;
        for (int x = 0; x < columncount; x++)
        {
            twoD[y, x] = parts2[x];

        }
        Div1.InnerHtml += "<tr>";
        Div1.InnerHtml += "<td>" + y + "</td>";
        Div1.InnerHtml += "<td>" + twoD[y, 0].TrimStart('\\') + "</td>";
        Div1.InnerHtml += "<td>" + twoD[y, 1] + "</td>";
        Div1.InnerHtml += "<td>" + twoD[y, 2] + "</td>";

        Div1.InnerHtml += "<td><input type = \"submit\" ID=\"Button4\" runat=\"server\" OnClick=\"retunthis\" Text=\"stop\">stop</submit></td> ";
        Div1.InnerHtml += "</tr>";

        return null;
    }

我面临的问题是当按下按钮时没有错误消息,没有正在处理的功能。

目前我只是通过“innerhtml”将数据发送到asp页面。是否有更好的方式来显示我的输出?

注意:感谢jack编辑我的第一个问题,以及那些回复的人。 &lt; 3

1 个答案:

答案 0 :(得分:0)

首先你有一个html标签不匹配。您正在关闭带有按钮标记的类型按钮的输入标记。这不会修复您的错误,但可以促进良好的语法。

Karl的解决方案对我不起作用(我会留下评论,但我的声誉还不够高。)

我尝试了很多选项,其中没有一个可以解决问题。看来,当ASP.NET呈现HTML时,它会将asp:Button转换为您期望的输入类型,但会将任何提交事件转移到脚本中。

例如:

<asp:Button ID="Button3" Text="Start" runat="server" OnClick="Button3_Click" />

呈现给......

<input type="submit" name="ctl00$MainContent$Button3" value="Start" id="MainContent_Button3" />

还渲染了......

<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['ctl01'];
if (!theForm) {
    theForm = document.ctl01;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>

我不知道事件信息的存储位置(可能是视图状态),但似乎您也必须添加此链接。

可能更容易从HTML中直接添加HTML中的按钮。如果那是不可能的,可以尝试使用ListView而不是div并将按钮添加到ListView。