我有搜索属性的ASP.Net控件,带有复选框选项和ASP.NET转发器。对于响应式设计,我在两个不同的位置具有相同的绑定以匹配设计。
这里,CheckBoxList ID = Options1& ID = Options2都具有相同的绑定但代码将重复。我有400行来检查单个绑定的条件。我必须为另一个视图再次复制所有代码。 有没有办法优化代码以单独绑定两个视图处理。 (避免重复绑定和检查)?
// Desktop View
<div class="hidden-sm hidden-xs narrowSearch">
//Content
<asp:Repeater ID="rptAttributes1" runat="server" EnableViewState="true" OnItemDataBound="rptAttributes_ItemDataBound">
<ItemTemplate>
<li>
<div class="form">
<asp:CheckBoxList ID="Options1" runat="server" AutoPostBack="false" Visible="false"
DataTextField="EnOptionName" DataValueField="SubCategoryAttributeOptionID" Font-Strikeout="False" />
</div>
</li>
</ItemTemplate>
</asp:Repeater>
</div>
// Mobile view
<div class="sec_left hidden-lg hidden-md">
<div class="moremenu narrowSearch">
//Content
<asp:Repeater ID="rptAttribute2" runat="server" EnableViewState="true" OnItemDataBound="rptAttributes_ItemDataBound">
<ItemTemplate>
<li>
<div class="form">
<asp:CheckBoxList ID="Options2" runat="server" AutoPostBack="false" Visible="false"
DataTextField="EnOptionName" DataValueField="SubCategoryAttributeOptionID" Font-Strikeout="False" />
</div>
</li>
</ItemTemplate>
</asp:Repeater>
</div>
</div>
代码背后:
CheckBoxList chklOptions1 = item.FindControl("Options1") as CheckBoxList;
CheckBoxList chklOptions2 = item.FindControl("Options2") as CheckBoxList;
答案 0 :(得分:0)
您可以将转发器(包括声明性代码以及您在页面代码隐藏中的内容)放入自定义用户控件中。然后将用户控件放在页面的每个部分(桌面和移动设备)中。这是避免重复代码的最简单方法。话虽如此,由于您只提供了代码隐藏在页面代码隐藏类中的部分代码,因此当您移动页面代码隐藏中的命令式代码时,我无法说明可能需要进行哪些更改。类到用户控件。
祝你好运!