ASP.Net Repeater响应控制绑定

时间:2015-07-09 23:46:33

标签: c# asp.net responsive-design asprepeater

我有搜索属性的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;

1 个答案:

答案 0 :(得分:0)

您可以将转发器(包括声明性代码以及您在页面代码隐藏中的内容)放入自定义用户控件中。然后将用户控件放在页面的每个部分(桌面和移动设备)中。这是避免重复代码的最简单方法。话虽如此,由于您只提供了代码隐藏在页面代码隐藏类中的部分代码,因此当您移动页面代码隐藏中的命令式代码时,我无法说明可能需要进行哪些更改。类到用户控件。

祝你好运!