【问题标题】:How to show and hide html fieldset And also Set legend text from Asp.Net Code behind如何显示和隐藏 html 字段集以及从 Asp.Net 代码后面设置图例文本
【发布时间】:2013-11-07 05:32:35
【问题描述】:
我有一个带有“一些文本”的文件集和图例,在这个字段集中我有一个 GRID
我有两个问题
-
如何展示?从后面的代码中隐藏 html 文件集,我尝试了以下方式来显示和隐藏字段集
a) 设置 runat="server"--但它不起作用
b)我将字段集粘贴到 asp.net 面板中并尝试显示/隐藏面板,它
也没用
- 如何从后面的代码中为图例设置文本,即我想设置
"some text" + ASleged text 后面的 Value_Form_Code
注意:我正在使用“Rad Ajax Manager”和 Rad Ajax LoadingPanel
【问题讨论】:
标签:
c#
javascript
html
asp.net
rad
【解决方案1】:
<asp:Panel ID="Panel1" runat="server" >
<fieldlset>
<legend><asp:Label id="Label1" runat="server" /></legend>
</fieldset>
</asp:Panel>
如何从后面的代码中显示/隐藏 html 文件集?
Panel1.Visible = true; // or false
如何在代码后面设置图例文本,即我想在AS图例文本后面设置“一些文本”+Value_Form_Code?strong>
Label1.Text = String.Format("some text {0}",Value_Form_Code);
【解决方案2】:
还应该可以将ID 和runat="server" 添加到您的字段集并通过代码隐藏控制可见性。请记住用大写字母写“ID”。
<fieldset ID="myFieldset" runat="server">
您将无法控制图例文本,除非您给它一个 ID 并自行运行。但可见性是绝对可能的。
这种方法的好处是:没有不必要的 html 标记(面板将是额外的 div)。
缺点:字段集并不是真正的 asp 控件,因此有些东西可能会给您带来异常,因此请谨慎使用。
仅当我想在某些情况下完全阻止控件呈现时才使用这种方法(可见性就是这样做的)。
【解决方案3】:
1:我认为你应该将你的字段集放在一个 asp:panel 中,然后从你的代码隐藏中隐藏/显示面板。这将自动隐藏/显示您的字段集。
2:至于设置图例文本,只需用runat="server"设置图例,并从codebehind设置代码。
【解决方案4】:
当您设置 asp:panel 控件的 'GroupingText' 属性时,它将呈现为 'fieldset' HTML 中的 标记以及 'GroupingText' 属性值中的任何设置都呈现为 <legend> 标记。
我认为以下代码将根据您的要求为您提供帮助。
对于设计方面,
<asp:Panel runat="server" ID="Panel1" GroupingText="This is legend">
<h4>Your Content Goes Here</h4>
</asp:Panel>
<br />
<asp:Button ID="btnHidePanel" runat="server" Text ="Hide FieldSet" onclick="btnHidePanel_Click" />
<asp:Button ID="btnShowPanel" runat="server" Text ="Show FieldSet" onclick="btnShowPanel_Click" Visible="false" />
对于代码隐藏试试这个,
protected void btnHidePanel_Click(object sender, EventArgs e)
{
Panel1.Visible = false;
btnHidePanel.Visible = false;
btnShowPanel.Visible = true;
}
protected void btnShowPanel_Click(object sender, EventArgs e)
{
Panel1.Visible = true;
Panel1.GroupingText = "This Legend Text Has been Changed";
btnHidePanel.Visible = true;
btnShowPanel.Visible = false;
}