2011-09-12 52 views
0

我想添加一個隱藏字段和值分配給它(從列表視圖中選擇的項目)在JQuery中。任何人都可以幫助我嗎?值分配給從列表視圖中的SelectedItem隱藏字段使用JQuery

<SelectedItemTemplate> 
      <tr class='results-row selected-product' id='<%# Eval("GenericProductID") %>'> 
      <td class="results-item"> 
       <asp:Label ID="lblMatchedName" runat="server" Text='<%#Eval("MatchedName") %>' CssClass="matched-name" /> 
       <input type=’hidden’ class="synonym-id" value ='<%#Eval("SynonymID") %>' /> 
       <input type='hidden' class="product-index" value='<%# CType(Container, ListViewDataItem).DisplayIndex %>' /> 
      </td> 
      <td> 
    <asp:LinkButton ID="btnSelect" runat='server' CommandName='Select' Text='Select' CommandArgument='<%# Eval("GenericProductID") %>' 
      CssClass='button-select' /></td> 
      </tr> 
    </SelectedItemTemplate> 

在上面的塊這是我試圖添加,並在jQuery中讀取它的字段。

<input type=’hidden’ class="synonym-id" value ='<%#Eval("SynonymID") %>' /> 

JQuery的 -

$(document).ready(function() { 
       debugger; 
       $('#<%= loader.ClientID %>').hide(); 
       $('#left-search-content').hide(); 
       $('#right-search-content').hide(); 
       $('.header-bottom').hide(); 

       $('.results-row').live('mouseover', function() { $(this).addClass('highlighted'); }); 
       $('.results-row').live('mouseout', function() { $(this).removeClass('highlighted'); }); 
       $('.search-cancel').live('click', function() { 
        $('#dialog-form').dialog('close'); 
       }); 
       $('#<%= lbSearch.ClientID %>').live('click', function() { 
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndSearchHandler); 
       }); 
       $('.results-item').live('click', function() { 
        $('.selected-product').removeClass('selected-product'); 
        $(this).addClass('selected-product'); 
        //$(this).parent().addClass('selected-product'); 

        //var btnId = $(this).parent().find('.button-select').attr('id').replace(/_/gi, '$'); 
        //__doPostBack(btnId, ""); 
        $selectedProductRow = $(this).parent(); 
        var productId = $(this).parent().attr('id'); 
        debugger; 
        var matchedName = $selectedProductRow.find('.matched-name').html(); 
        var selectedSynonymID = $selectedProductRow.find('.synonym-id').html(); 

        var $hiddenField = $('#<%= hdnSelectedProductID.ClientID %>'); 
        $('#<%= hdnSelectedProductName.ClientID %>').val(matchedName); 
        $('#<%= hdnSelectedSynonymID.ClientID %>').val(selectedSynonymID); 
        if ($hiddenField) { 
         $hiddenField.val(productId); 
         __doPostBack($hiddenField.attr('id'), ''); 
        } 
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndDetailsHandler); 
        return false; 
       }); 

       //     $('.search-box').live('keypress', function(e) { 
       //      if(e.keyCode == 13) { 
       //        var btnId = $(this).parent().find('.search-button').attr('id').replace(/_/gi, '$'); 
       //        __doPostBack(btnId, ""); 
       //      } 
       //     }); 

       function OnFailed(error) { 
        alert(error.get_message()); 
       } 

      }); 

hdnSelectedSynonymID是隱藏變量我想有選擇的ListView項的synonymid數據字段。

回答

0

這種類型的要求,一般的解決方案是將change()事件附加到ListView控件,在其中設置隱藏字段的值。

假設列表視圖確實是一個下拉列表,然後是這樣的:

$('#list-view').change(function() { 
    $('input[name=hdnSelectedSynonymID]').val($(this).attr("synonymid")); 
}); 

你已經發布的代碼是有點難以理解,但上面的例子應該給你的想法。你的隱藏字段需要,如果它要被傳遞迴服務器作爲表單POST的一部分,一個名字:

<input type="hidden" name="hdnSelectedSynonymID" value ="<%#Eval('SynonymID')%>"/>