2015-12-30 34 views
0

這是我的ListView控件:如何在jQuery中在asp.net中觸發按鈕單擊事件內部列表視圖?

<asp:ListView ID="PortfolioListView" runat="server" onitemcommand="PortfolioListView_ItemCommand"> 
    <ItemTemplate> 
    <li class="item brick1 <%# Eval(" CategoryName ")%> isotope-item"> 
     <a class="item-popup" href="Gallery/195x195/<%# Eval(" MainImage ") %>" title="<%# Eval(" ShortDesc ") %>"> 
     <img src="Gallery/195x195/<%# Eval("MainImage") %>" alt="<%# Eval("Title") %>" /> 
     <div class="hover"> 
      <span class="Popup"> 
      <i class="fa fa-search-plus"></i> 
      </span> 
      <span><%# Eval("CategoryName")%></span> 
     </div> 
     </a> 
     <div class="bottom"> 
     <div class="isotope-title"><span><%# Eval("Title")%></span> 
     </div> 
     <div class="like"> 
      <a class="update"> 
      <i class="fa fa-thumbs-o-up"></i> 
      <span><%# Eval("Counter")%></span> 
      </a> 
      <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
      <ContentTemplate> 
       <div class="flike"> 
       <asp:LinkButton ID="LikeLBTN" runat="server" CssClass="likeBTN" ClientIDMode="AutoID" CommandName="Like" CommandArgument="<%# Bind('GalleryID') %>"> 
        <i class="fa fa-thumbs-o-up"></i> 
        <span><%# Eval("Counter")%></span> 
       </asp:LinkButton> 
       </div> 
      </ContentTemplate> 
      </asp:UpdatePanel> 
     </div> 
     </div> 
    </li> 
    </ItemTemplate> 
</asp:ListView> 

我有一個LinkBut​​ton內的ListView和LinkButton(CommandName="Like" CommandArgument="<%# Bind('GalleryID') %>")onitemcommand事件列表視圖觸發的。

我在aspx.cs PortfolioListView_ItemCommand:

protected void PortfolioListView_ItemCommand(object sender, ListViewCommandEventArgs e) 
{ 
    DBClass dbc = new DBClass(); 
    int index = int.Parse(e.CommandArgument.ToString()); 
    string cmd = e.CommandName; 
    if (cmd == "Like") 
    { 
     string selstr = String.Format("Update Gallery set [Counter]=[Counter]+1 where GalleryID = {0}", index.ToString()); 
     int res = dbc.RunCommand(selstr); 
     selstr = String.Format("SELECT GalleryID, Title, MainImage, Counter, ShortDesc, CategoryName FROM Gallery inner join GalleryCat on Gallery.CatID = GalleryCat.CatID Order By PDate desc"); 
     dbc.LoadInList(PortfolioListView, selstr); 
    } 
} 

我要當點擊a標籤與ListView中class="update",點擊LinkBut​​ton的觸發和我PortfolioListView_ItemCommand事件代碼的事件運行。現在這應該怎麼用jQuery或JavaScript來完成?謝謝。

回答

0

通常,元素的客戶端ID與在服務器上分配的ID不同。所以嘗試先獲取clientId,然後嘗試觸發點擊。

document.getElementById('<%= LikeLBTN.ClientID %>').click 

您可以使用div類導航到特定linkButton

下面是一個使用HTML元素的樣本代碼:

$(document).on("click", ".update", function() { 
 
    var aTag = $(this); 
 
    var contentPanel = $(aTag).next().find(".contentPanel"); 
 
    var flike = $(contentPanel).find(".flike"); 
 
    var linkBtn = $(flike).find('.linkBtn'); 
 
    linkBtn.click(); 
 
}) 
 

 
$(document).on("click", ".linkBtn", function() { 
 
    console.warn("Button clicked"); 
 
})
div { 
 
    margin: 5px; 
 
    padding: 5px; 
 
    border: 1px solid gray; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<a class="update">Link</a> 
 
<div class="updatePanel"> 
 
    <div class="contentPanel"> 
 
    <div class="flike"> 
 
     <button class="linkBtn">Button</button> 
 
    </div> 
 
    </div> 
 
</div>

+0

當我使用你的代碼時,我遇到了錯誤,因爲我的LinkBut​​ton在ListView裏面。你有另一種解決方案嗎? –

+0

會有多個linkBut​​ton,所以你想打電話給哪一個? – Rajesh

+0

我想要點擊類更新時,我的代碼在PortfolioListView_ItemCommand中的服務器端運行。所以所有的LinkBut​​ton。 –

0

我想,當點擊「A」帶class =「更新」中的ListView標籤,點擊LiunkBut​​ton觸發的事件

嘗試添加點擊事件當用戶與update類標記一則點擊可以觸發標籤再點擊一下,ID爲#LikeLBTN

$('body').on('click', '.update', function(){ 
    $('#LikeLBTN').click(); 
}) 

或者我建議使用像另一個隱藏鏈接:

<asp:LinkButton runat="server" ID="SomeControl" onclick="someControlClicked" 
    style="display:none; /> 

而不是$('#LikeLBTN').click();您可以撥打$('#SomeControl').click();

希望這會有所幫助。

+0

謝謝兄弟,但我裏面的ListView的LinkBut​​ton和你的代碼不起作用。我想要點擊類更新時,運行PortfolioListView_ItemCommand中服務器端的代碼。你有另一種解決方案嗎?感謝 –

相關問題