我想根据条件动态更改ASP.NET用户控件UI中元素的位置。例如: - 以下是我的用户控件
的常规布局我可以想到以下方法,但不确定它们是否是最好的方法。
但我想这个小小的改变就是那种矫枉过正 是否有任何最知名的方法/更好的解决方案来处理这种类型,而不是我能想到的 任何建设性的意见都会有所帮助。
答案 0 :(得分:0)
您可以创建两个按钮,一个按钮位于用户控件的所需位置,另一个位于目标位置。默认情况下,第一个按钮将显示为块,默认情况下,第二个按钮将显示为无。根据您的情况,您可以更改第一个按钮和第二个按钮的类,使第一个按钮隐藏,第二个按钮显示为块。这是一个例子:
来源:
<style>
.HideButton {
display: none;
}
.ShowButton {
display: block;
}
</style>
<form id="form1" runat="server">
<div>
<table>
<tr>
<td><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></td>
<td>
<asp:Button ID="Button1" runat="server" Text="Button" />
</td>
</tr>
<tr>
<td>
<asp:Button CssClass="HideButton" ID="Button2" runat="server" Text="Button />
</td>
<td"> </td>
</tr>
</table>
</div>
</form>
在代码背后:
if (something)
{
Button1.CssClass = "HideButton";
Button2.CssClass = "ShowButton";
}
另一个解决方案是更改td标记的innerHTML,如下所示:
来源:
<form id="form1" runat="server">
<div>
<table>
<tr>
<td><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></td>
<td id="DesiredLocation" runat="server"><input type="button" value="button1" /></td>
</tr>
<tr>
<td id="TargetLocation" runat="server"></td>
<td"></td>
</tr>
</table>
</div>
</form>
在aspx代码中:
if (something)
{
TargetLocation.InnerHtml = DesiredLocation.InnerHtml;
DesiredLocation.InnerHtml = "";
}
希望这项工作。