使用后面的代码获取div

时间:2014-01-31 05:18:22

标签: c# updatepanel

我有一个div,如下所示: 主页面>内容页面>内容>更新面板>表格> div > gridview

我正在尝试使用以下方法获取div的宽度:

<div runat="server" id="gridViewWrapper" style="width:820px;">

HtmlGenericControl curHeightctrl = (HtmlGenericControl)this.FindControl("gridViewWrapper");
string curWidth = Convert.ToString(curHeightctrl.Style["width"]);
System.Diagnostics.Debug.Write(curWidth.ToString());

但我无法获得宽度。我花了5个小时研究这个并用Google搜索,直到我的手指麻木。似乎它应该工作,因为div是在内容页面上而不是从母版页生成的。 (我可能会使用一些不正确的语言)

3 个答案:

答案 0 :(得分:0)

您不需要FindControl,您可以通过它的ID直接在后面的代码中访问您的控件。

Aspx (保持不变):

<div runat="server" id="gridViewWrapper" style="width: 820px;">

CodeBehind

string width = gridViewWrapper.Style["width"];
System.Diagnostics.Debug.Write(width);

另请注意,Style["width"]已经是一个字符串(它会直接打印820px)所以您不需要Convert.ToString

答案 1 :(得分:0)

简单使用:

string curWidth = curHeightctrl.Style["width"];

答案 2 :(得分:0)

首先,请关闭HTML中的div标记(通知结尾/&gt;而不仅仅是&gt;)

<div runat="server" id="gridViewWrapper" style="width:820px;"/>

或者你可以做

<div runat="server" id="gridViewWrapper" style="width:820px;"></div>

其次,如果div位于内容页面而不是母版页中,则CodeBehind需要位于内容页面上。您应该能够访问它:

string width = gridViewWrapper.Attributes.CssStyle["width"];

可以访问gridViewWrapper而无需调用FindControl,因为您在标记中放置了runat =“server”