2012-03-23 4 views
0

私はチェックボックスがオンのradcomboboxを持っています。私はjQueryスクリプトを書いて、そのすべてにクリックイベントを追加しました。私が次のステップに進むために必要なのは、そのアイテム/チェックボックスが存在するコンボボックスを取得する方法です。このような何か:jQueryを使用するにはどうすれば、チェックボックスのクリックイベントから親Radcomboboxコントロールオブジェクトを取得できますか?

$(."comboBoxTag.find(":checkbox").click(
     function(){ 
      var cboObject = $(this).??? 
     }); 

I)が(アクセスのようなcboObject.get_itemsようtelerik APIメソッドを物事を行うことができますこの方法。私は「AssigneeTag」と呼ばれるCSSクラスでタグ付けされたコントロールが、何も返していない.closest(「AssigneeTag」)をやって持って

...

任意のアイデア?

UPDATE: 要求されたよう:

<h1>Tickets Assigned to Me</h1> 
    <rad:RadListView runat="server" ID="lsvTickets"> 
     <ItemTemplate> 
      <div id="divContainer" class="divContainer"> 
       <div id="divTicketHeader" class="divTicketHeader"> 
        <asp:Table runat="server" ID="tblTicketHead" Width="100%" CellSpacing="0" CellPadding="5" HorizontalAlign="Center"> 
         <asp:TableRow HorizontalAlign="Left"> 
          <asp:TableCell Width="25%"> 
           <asp:Label ID="lblSubject" runat="server" Text='<%#Eval("Subject") %>' Font-Bold="true" /> 
          </asp:TableCell><asp:TableCell Width="25%"> 
           <asp:Label ID="lblStatus" runat="server" Text='<%#Eval("Status.Key") %>' /> 
          </asp:TableCell><asp:TableCell Width="25%"> 
           <asp:Label ID="lblReportedBy" runat="server" Text='<%#Eval("CreatedBy.Key") %>' /> 
          </asp:TableCell><asp:TableCell Width="25%"> 
           <asp:Label ID="lblDateOpened" runat="server" Text='<%#Eval("DateOpened") %>' /> 
          </asp:TableCell></asp:TableRow></asp:Table></div><div id="divTicketBody" class="divComments"> 
         <rad:RadListView runat="server" ID="lsvActions" DataSource='<%#Eval("Comments") %>' ItemPlaceholderID="ph1" ClientIDMode="Static"> 
          <ItemTemplate> 
           <div id="divComment" class="divComment"> 
            <asp:Table runat="server" ID="tblComment" CellPadding="5"> 
             <asp:TableRow> 
              <asp:TableCell Width="15%" HorizontalAlign="Center"> 
               <rad:RadBinaryImage runat="server" ID="imgCommenter" Width="50" Height="50" /><br /> 
               <asp:Label ID="Label5" runat="server" Text="[action author]" /><br /> 
               <asp:Label ID="Label6" runat="server" Text='<%#Eval("CreateDate", "{0:MMM d, yyy hh:mm}") %>' 
                CssClass="commenterText"/><br /> 
              </asp:TableCell><asp:TableCell> 
               <asp:Label ID="Label7" runat="server" Text='<%#Eval("CommentText") %>' /> 
              </asp:TableCell></asp:TableRow></asp:Table></div></ItemTemplate><LayoutTemplate> 
           <center>        
           <div id="divAddComment" style="width: 500px;" class="CommentTopLevel"> 
            <div id="divCommentControls" style="margin: 8px 0px 8px 0px;"> 
             <asp:HiddenField runat="server" ID="hfID" Value='<%#Eval("TicketID") %>' /> 
             <rad:RadComboBox runat="server" ID="cboStatus" DataSource='<%#GetStatuses() %>' DataTextField="Status" DataValueField="Support_StatusID" CssClass="StatusTag" EnableViewState="true" /> 
             <rad:RadCombobox runat="server" ID="cboAssignTo" DataSource='<%#GetAssignees() %>' DataTextField="Name" DataValueField="Guid" ItemDataBound="Assignees_Bound" CssClass="AssigneeTag" CheckBoxes="true" OnItemChecked="AssigneeChecked" /> 
             <rad:RadTextBox runat="server" ID="txtComment" TextMode="MultiLine" Width="500" Height="100" CssClass="CommentBox" /><br /> 
            </div> 

            <div style="height: 35px;"> 
             <div style="float:right; margin: 3px 0 0 0; "> 
              <rad:RadButton runat="server" CssClass="submitTag" ID="btnSubmit" Text="Submit" /><br /> 
              <div class="SubmitStatus"></div> 
             </div> 
            </div> 
           </div> 
           </center> 
           <asp:PlaceHolder ID="ph1" runat="server" /> 
          </LayoutTemplate> 
         </rad:RadListView> 
        </div> 
      </div> 
     </ItemTemplate> 
    </rad:RadListView> 

これはItemTemplateににネストされて別のリストビューとリストビューです。内側のリストのitemtemplateにはコントロールがあります。参照しているコンボボックスの名前は、cboAssignToです。それはTelerikのコンボボックスなので、伝統的なDropDownメニューのようには動作しません。これは、コンボボックスが動的に生成されるという事実の上でこれを実際に複雑にしていると思います。私は$(this).closest( "。rcbTag")のようなことをして、cboStatusと呼ばれる他のコンボボックスの値を取得することができましたが、この他のコンボボックスにはチェックボックスがあります。

編集:ここでは

は私がよどの段階のバージョンを読みやすく骨抜きにされます。これは、このコンボボックスの単一のインスタンスによって生成されたHTMLです:

<div id="lsvTest" class="RadComboBox RadComboBox_Default RcbTag" style="width:160px;"> 
    <table summary="combobox" style="border-width:0;border-collapse:collapse;table-layout:fixed;width:100%"> 
     <tr class="rcbReadOnly"> 
      <td style="margin-top:-1px;margin-bottom:-1px;width:100%;" class="rcbInputCell rcbInputCellLeft"> 
       <input name="lsvTest" type="text" class="rcbInput" id="lsvTest_Input" value="" style="display: block;" readonly="readonly" /> 
      </td> 
      <td style="margin-top:-1px;margin-bottom:-1px;" class="rcbArrowCell rcbArrowCellRight"> 
       <a id="lsvTest_Arrow" style="overflow: hidden;display: block;position: relative;outline: none;">select</a> 
      </td> 
     </tr> 
    </table> 

    <!-- 2012.1.215.40 --> 
    <div class="rcbSlide" style="z-index:6000;"> 
     <div id="lsvTest_DropDown" class="RadComboBoxDropDown RadComboBoxDropDown_Default " style="float:left;display:none;"> 
      <div class="rcbScroll rcbWidth" style="width:100%;"> 
       <ul class="rcbList" style="list-style:none;margin:0;padding:0;zoom:1;"> 
        <li class="rcbItem "><input type="checkbox" class="rcbCheckBox" />One</li> 
        <li class="rcbItem "><input type="checkbox" class="rcbCheckBox" />Two</li> 
        <li class="rcbItem "><input type="checkbox" class="rcbCheckBox" />Three</li> 
       </ul> 
      </div> 
     </div> 
    </div> 
    <input id="lsvTest_ClientState" name="lsvTest_ClientState" type="hidden" /> 
</div> 

はちょうどこのを見て、私はチェックボックスをクリックして、$を使用してのように感じる(これは).closest(「RcbTag」)は、すべてのトラバースすべきです上の方に向かい、外側のdivをつかむが、そうではない。

+0

あなたはHTML構造でjsのフィドルをしてください作成してくださいすることができ:

<script language="javascript" type="text/javascript"> function OnClientItemChecked(sender, eventArgs) { var item = eventArgs.get_item(); var combo = item.get_comboBox(); // Now you have a reference to the parent ComboBox } </script> 

とRadComboBoxそのもの達成しようとしている? –

+0

少なくともあなたのhtmlコードを表示 –

答えて

0

Telerikが認定した方法に固執すれば、あなたの人生はもっと楽になると思います。ここでは、それらを使用してそれを行うことができる方法です:私たちは実際にあなたが何であるかを知っているように、含ま

<telerik:RadComboBox ID="RadComboBox1" runat="server" 
    OnClientItemChecked="OnClientItemChecked" CheckBoxes="true"> 
</telerik:RadComboBox> 
0

私はjQuery parent()コールを使用して同様の問題を解決しました。これを試しましたか?

+0

私はいくつかの異なるレベルにこれを試してみましたが、私はオブジェクトを取得することができましたが、私は知られているメソッドを呼び出すことができなかったので、彼らは正しいオブジェクトだと思っていません – Sinaesthetic

+0

と理由本当にそのルートに行きたいと思うのは、もし私が階層を変更するために何かをすると、それは壊れるでしょう。 – Sinaesthetic

関連する問題