从服务器端访问html控件

时间:2009-05-29 08:08:39

标签: asp.net html

如何从asp.net中的代码访问html控件。我不想使用“runat = server”,因为它会导致问题。

我已经创建了一个空的html表,从我的代码后面,我想添加< td>它。

请帮忙。

谢谢, Prachi

5 个答案:

答案 0 :(得分:1)

如果没有runat =“server”,这是不可能的。

你说这引起了问题。请说出它造成的问题。


你说你使用getElementById访问该表?服务器控件的ID根据其内部的控件而更改。您需要获取更改后的ID:

var tab = getElementById("<%= myTable.ClientId %>");

或者那种效果。

答案 1 :(得分:0)

如果要在后面的代码中访问它,则应使用runat = server属性。

但是也许你可以生成一些javascript代码,在代码隐藏时将td / tr添加到你的表中。并且您可以将其注册到您的页面以在启动时运行。

答案 2 :(得分:0)

RUNAT = “服务器”

到表和tr元素,后面的代码无法访问它们(因为这告诉框架工作将元素暴露给服务器)。

你到底想要做什么?您是否查看了DataGridGridView或简单Repeater控件?这些允许您定义表结构并动态地向其添加控件(通常通过数据绑定,尽管有方法可以将项添加到其ItemCollections中)。

答案 3 :(得分:0)

可以执行此操作的一种方法是添加一些内联脚本和公共字符串变量。在你的代码中,创建一个公共类级变量:

public String myColumns

然后在您的Page_Load事件中,将HTML创建为字符串并将其保存在myColumns变量中:

protected void Page_Load() {
//do stuff
myColumns = someStringWithTDTagsInIt
}

然后在.aspx页面中,执行以下操作:

<table id=maintable"><tr><%=myColumns %></tr></table>

它应该在您的Page_Load事件中呈现您想要的HTML(或者您想要的任何事件,如果您希望它在点击按钮上加载等),而不使用“runat = server”标记。

请注意,这不是推荐实现此目的的方式(控件通常更有效),但这应该是您提出的问题的有效解决方案。

答案 4 :(得分:0)

简单的例子。

只需将runat =“server”放置即可访问。

html控件无法在服务器端访问。如果您放置runat服务器,那么它将在服务器中访问。