2014-06-13 18 views
0

我正在使用ASP.net,C#網站引導。單選按鈕和複選框的回發事件不起作用。單選按鈕回發事件不與引導,asp.net

我們該如何解決這個問題,或者我們如何從單選按鈕或複選框中刪除CSS或JQuery。


代碼

<asp:RadioButton ID="rdbtn1" runat="server" Text="Check me" 
     AutoPostBack="true" OnCheckedChanged="radio_checked"/> 
    <asp:CheckBox ID="chk1" runat="server" Text="radio button" 
     AutoPostBack="true" OnCheckedChanged="chk_checked" /> 
+1

你能提供一些代碼? – Nicolai

+0

Nicolai,謝謝你的回覆。代碼我已經使用' ' –

+0

它工作正常,所以我認爲問題是在別的地方 – Nicolai

回答

0

如果您使用的自舉那麼這個問題就來了怎麼把引導改變所有複選框的和單選按鈕的風格和顯示那些DIV內改變選和單選的外觀。 AND AutoPostBack適用於點擊事件,但點擊事件轉至DIV

所以解決方案是使用on checked change事件。最好的方法是使用jQuery

在上面添加一個這樣的腳本:

<script type="text/javascript"> 
    $(function() { 
     $("#idOfCheckbox").on('ifToggled', function (event) { 
      __doPostBack('idOfCheckbox',''); 
     }); 
     $("#idOfRadio").on('ifToggled', function (event) { 
      __doPostBack('idOfRadio',''); 
     }); 
    }); 
</script> 

你可以把它的輔助/備用方法來設置AutoPostBack=true,它適用於所有輸入。

0

Bootstrap Javascript在單選按鈕/複選框控件周圍添加標籤,捕獲點擊。控件的AutoPostBack onclick永遠不會被調用。要解決該問題,請將標籤的onclick設置爲與控件的onclick相同。

// Fix AutoPostBack issue due to Bootstrap Javascript 
protected void RadioButton_FixAutoPostBack_OnPreRender(object sender, EventArgs e) 
{ 
    RadioButton radioButton = (RadioButton)sender; 
    HtmlGenericControl label = (HtmlGenericControl)radioButton.Parent; 

    // Set onclick handler of the parent label to be the same as the radio button. 
    // This fixes issues caused by bootstrap javascript which adds labels. 
    label.Attributes.Add("onclick", 
     "javascript:setTimeout('__doPostBack(\\'" + 
     radioButton.UniqueID + "\\',\\'\\')', 0)"); 
} 

ASPX:

<label class="btn btn-yes" runat="server" id="LabelFoo"> 
    <asp:RadioButton ID="RadioButtonFoo" runat="server" 
     AutoPostBack="true" 
     OnPreRender="RadioButton_FixAutoPostBack_OnPreRender" 
     OnCheckedChanged="RadioButtonFoo_CheckedChanged" /> 
</label>