아래 주어진 aspx 페이지의 div가 있습니다. 데스크톱 및 모바일 코드와 스타일이 포함 된 페이지가 있습니다. 조건에 따라 show hide div를 보여주고 싶습니다. 모바일 위에 제공 "데스크톱과"되는 클래스를 사용하여, (페이지에 50 개 이상의 사업부) ID를 사용하여이 코드와 ID를 증가 "코드를 줄일 수 있습니다.div가 C에서 div 클래스를 사용하여 서버 측에서 false로 표시됩니다.
<div class="desktop" runat="server">
<p>this desktop version1</p>
</div>
<div class="Mobile" runat="server">
<p>this mobile version1</p>
</div>
<div class="desktop" runat="server">
<p>this desktop version1</p>
</div>
<div class="Mobile" runat="server">
<p>this mobile version1</p>
</div>
<div class="desktop" runat="server">
<p>this desktop version1</p>
</div>
<div class="Mobile" runat="server">
<p>this mobile version1</p>
</div>
<div class="desktop" runat="server">
<p>this desktop version1</p>
</div>
을 내가 DIV 클래스를 사용하여 숨기기 사업부를 표시 할 (서버 측에서하지 DIV ID). 마지막으로이에 관한 질의 회신 주시기 바랍니다 내가이의 해결책을 찾기
protected void Page_Load(object sender, EventArgs e)
{
}
. 댓글에서 언급 한 바와 같이
protected void Page_Load(object sender, EventArgs e)
{
string theClass;
theClass = "desktop";
var theControls = FindByClass(theClass);
foreach (Control item in theControls)
{
//do something;
if (item is WebControl)
{
((WebControl)item).Visible = false;
}
else
{
((HtmlControl)item).Visible = false;
}
}
}
private IEnumerable FindByClass(string theClass)
{
Control[] allControls = FlattenHierachy(Page);
var theControls = from n in allControls
where ((n is WebControl)
&& ((WebControl)n).CssClass.Contains(theClass))
|| (n is HtmlControl
&& ((HtmlControl)n).Attributes.Count > 0
&& ((HtmlControl)n).Attributes["class"] != null
&& ((HtmlControl)n).Attributes["class"].IndexOf(theClass) > -1)
select n;
return theControls;
}
public static Control[] FlattenHierachy(Control root)
{
List<Control> list = new List<Control>();
list.Add(root);
if (root.HasControls())
{
foreach (Control control in root.Controls)
{
list.AddRange(FlattenHierachy(control));
}
}
return list.ToArray();
}
왜 ID를 사용하고 싶지 않은지 설명 할 수 있습니까? – Adil
이것은 서버 측 계산이 아닌 css 및 미디어 쿼리의 경우와 같습니다. div 요소 간의 차이점은 무엇입니까? – sisve
어쨌든 .. 각각의 유형을 그룹화 한 자신의'div's 그룹으로 이들을 분할 한 다음 표시하고 숨 깁니다. –