2014-12-02 42 views
0

我有一個用戶控件,其中使用了一個可編輯的拉丁組合和一個拉丁文本框。取決於我需要設置文本框的可見性的組合值。它的工作。代碼如下。
1.用戶控制當rad組合框顯示空的消息字符串時,將文本框的可見性設置爲false

<asp:Panel ID="pnl44" runat="server" Visible="false"> 
    <table width="100%"> 
     <tr> 
      <td style="width: 20%;"> 
       Quantity<span style='color: red'>* </span> 
      </td> 
      <td align="left" style="vertical-align: top; width: 80%;"> 
       <table width="100%"> 
        <tr> 
         <td align="left" style="vertical-align: top; width: 63%;"> 
          <telerik:RadComboBox ID="pnl44_ddlUnit" runat="server" DropDownAutoWidth="Enabled" 
          Width="150px" AutoPostBack="true" OnSelectedIndexChanged="ddlUnit_SelectedIndexChanged" 
          EmptyMessage="---Select---" markfirstmatch="True" allowcustomtext="false" onclientblur="OnClientBlurHandler"></telerik:RadComboBox> 
         </td> 
         <td> 
          <asp:TextBox ID="pnl44_txtQuantity" MaxLength="10" runat="server" CssClass="textfield" 
           Width="145px" /> 
          <ajaxtoolkit:FilteredTextBoxExtender ID="ftetxtQuantity" FilterType="Numbers" runat="server" 
           TargetControlID="pnl44_txtQuantity" /> 
         </td> 
        </tr> 
       </table> 
      </td> 
     </tr> 
    </table> 
</asp:Panel> 
代碼

後面我處理選擇更改事件設置的知名度,其工作的罰款。關於模糊的javascript如下(它在aspx頁面中)。

<script type="text/javascript" language="javascript"> 
     function OnClientBlurHandler(sender) {                     
      var item = sender.findItemByText(sender.get_text()); 
      if (!item) { 
       sender.clearSelection(); 
      } 

     } 
    </script> 

有了這個,每當組合值爲空時,它將顯示空消息。

的情況是這樣的

默認txtQuantity的知名度是假的。 當用戶從組合中選擇'value1'時,txtQuantity可見性爲true; 然後用戶使用delete/backspace刪除value1,組合框將顯示空的消息字符串,但那時txtQuantity可見性爲true,而不是false。

請幫我解決這個問題...

回答

0

看來你改變文本框的知名度服務器上,所以你就需要開始當您清除組合選擇會爲你做的請求。基本知識:

function OnClientBlurHandler(sender) {                     
     var item = sender.findItemByText(sender.get_text()); 
     if (!item) { 
      sender.clearSelection(); 
      __doPostBack("", ""); 
     } 

    } 

這將生成一個通用回發。您可以使用隱藏按鈕或隱藏字段或其他參數來了解此回發源自何處。

選項2:隱藏的JavaScript的文本框,例如:

function OnClientBlurHandler(sender) {                     
     var item = sender.findItemByText(sender.get_text()); 
     if (!item) { 
      sender.clearSelection(); 
      document.getElementById("<%=pnl44_txtQuantity.ClientID%>").style.display="none"; 
     } 
    } 

或類似的東西,根據與文本框的ACT控制做什麼。

+1

感謝您的幫助。我在javascript中添加了sender.postback()併爲我工作得很好。 – user1685989 2014-12-04 12:05:18

相關問題