0
我有ASP.Net控件的搜索屬性與複選框選項和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;
例如,我必須檢查當前使用此代碼的複選框屬性值。 if(options.Checked == true) { _lstProducts = _lstProducts.Intersect(lstDeals).ToList(); } 但在這種情況下,我必須重複檢查這兩個視圖 如果(options1.Checked == TRUE){ _lstProducts = _lstProducts.Intersect(lstDeals).ToList(); } if(options2.Checked == true) { _lstProducts = _lstProducts.Intersect(lstDeals).ToList(); } 因此,每一個檢查轉換爲兩個。避免這種檢查到單身它很好 – Marudu
你的例子證實我的建議(將您的代碼移動到一個自定義的用戶控件)應該在你的情況下工作得很好。 – Lawrence
是的,你是正確的,你建議。但如果我使用用戶控件,我在頁面中的兩個地方使用此控件。所以,我再次檢查兩個不同的ID是唯一的權利。那麼如何減少我的後端檢查呢?我只關注後端代碼優化。 – Marudu