2015-06-04 26 views
1

我有這樣的代碼:爲什麼jquery multiselect控件在動態填充時會停止正常工作?

<select id="sState" multiple="multiple" name="sState" size="5"> 
<option value="option1">Option 1</option> 
<option value="option2">Option 2</option> 
<option value="option3">Option 3</option> 
<option value="option4">Option 4</option> 
<option value="option5">Option 5</option> 
<option value="option6">Option 6</option> 
<option value="option11">Option 11</option> 
<option value="option12">Option 12</option> 
</select> 

完美的作品,將CSS看起來如預期。

但是,當我想動態填充它時,我必須添加runat =「server」。當我這樣做

<select id="sState" runat="server" meta:multiple="multiple" name="sState" size="5"> 

,它就失去了所有的CSS格式,看起來像一個列表框:第一行,必須改變對。

任何想法,爲什麼發生這種情況?

+0

您的應用程序中是否有母版頁?如果是,則不要根據id應用樣式。相反,使用CSS類。 –

+0

我認爲風格是基於js文件?它自己應用ui-multiselect樣式。 –

回答

0

發生此問題的原因是多部件小部件在部分回發時將其自身附加到正文。嘗試從DOM中刪除菜單,然後再次初始化如下:

<script> 
    var pageRequest = Sys.WebForms.PageRequestManager.getInstance(); 

    pageRequest.add_endRequest(function() { 
     $('.ui-multiselect-menu').each(function() { 
      $(this).remove(); 
     }); 
     $('#sState').multiselect({ 
      multiple: false, 
      header: false, 
      noneSelectedText: false, 
      selectedList: 1, 
      minWidth: 170 
     }); 
    }); 

</script> 
+0

當我運行這個時,我得到:0x800a1391 - Microsoft JScript運行時錯誤:'Sys'未定義 –

相關問題