我有一个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是在内容页面上而不是从母版页生成的。 (我可能会使用一些不正确的语言)
答案 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”