2015-04-20 102 views
1

我有一個用asp webforms(.net 4.0)編寫的很老的項目。它使用像TextBox等不同的webforms服務器控件。向webforms添加引導程序設計

有一種用Bootstrap編寫的設計。

客戶希望將「webforms上的舊項目」與「bootstrap design」結合起來。

可能嗎?我在這裏看到一個問題:webforms服務器控件生成自己的html代碼,因此不能直接使用類似bootstrap的設計。問題是 - 如何處理這個問題,如何克服這個問題?

我沒有看到一個很好的解決方案,只重寫服務器控件,如果他們不適合引導需要。是否有任何廣泛使用的類似Bootstrap的Web窗體控件?

+1

新的.Net Web窗體使用引導(在它的站點master和aspx中),您可以通過引用控件的'CssClass'屬性來命名css引導類來以相同的方式使用它。檢查靴子教程 – user3240361

+0

我很抱歉,但你的意思是「新的.NET Web窗體」?你的意思是哪個版本? – renathy

回答

4

要問的第一個問題是客戶希望使用Bootstrap的哪一部分?

引導電網

  • 這可能是結合了最簡單的部分到現有系統中。由於大多數現有Web窗體項目都使用表格進行佈局,因此可以使用響應表來控制表格的佈局。
  • 或者,您可以查看使用Bootstrap Grid類爲基礎佈局重寫表。

HTML的輸入字段

  • 對於<input>, <textarea>, and <select>輸入字段,我會建議你創建你的基本頁面的功能,將所需的自舉類自動添加到控制。默認情況下,這將是「表單控制」類。作爲一個起點,你可以在Page.Init事件中看到這樣做。

  • 你也可以按鈕做這樣的按鈕,但你的選擇範圍更大。

  • 對於複選框和Radibuttons,確實沒有一個好方法可以自動執行此操作。您將不得不手動修改這些控件的HTML。

即使有上述選項,每個頁面都會有一定程度的手動編輯。

這是我們現在要在一個新項目上實施的計劃,所以我希望祝你好運。


編輯在評論

對矯正的HTML複選框和單選按鈕的問題。我的意思是說,至少你必須添加一個<div class="checkbox"></div>來環繞<asp:checkbox>控件。以下是Bootstrap推薦的html。

<div class="checkbox"> 
    <label> 
     <input type="checkbox" id="checkboxSuccess" value="option1"> 
     Checkbox with success 
    </label> 
    </div> 

請注意,我不建議您編寫自己的服務器控件,但這總是一個選項。

是的,使用Page_Init會很好。在代碼方面,我會使用以下代碼行

For each control in this.Controls 
    if control is textbox or control is textarea or control is select then 
     control.CssClass = "form-control" 
    end if 
Next 

對於像GridView或ListView這樣的控制器,它們會生成html表格。所以你可以使用Bootstrap的響應表格控件。

+0

dieng實際上包含所有這些 - 網格,輸入等字段,以及複選框和放大器。你能解釋一下「修改複選框和單選按鈕的html」是什麼意思,你的意思是重寫Render方法或類似的東西?我不害怕編寫自己的html代碼,向現有控件添加類,等等。害怕 - 會有一些控件不適用於bootstrap – renathy

+0

Morover - 你能解釋一下你打算怎麼做「寫入函數來添加默認類來控制窗體控件」嗎?例如,如果我在Page_Init中,我該怎麼做? – renathy