2012-07-10 62 views
0

我在Repeater中有幾個LinkBut​​ton。當我手動點擊它們時,它們會很好地回傳。我所有嘗試通過javascript點擊LinkBut​​ton都失敗了,我現在用盡了想法(Google也是如此,似乎找不到任何其他選項)。我試圖在OnClick和OnCommand之間交替。在IE9中點擊一個帶有JavaScript的LinkBut​​ton

了LinkBut​​ton:

<asp:Repeater ID="repItems" runat="server" OnItemDataBound="repItems_OnItemDataBound"> 
    <ItemTemplate> 
     <asp:Panel ID="pnlItem" runat="server">      
      <asp:LinkButton ID="lnkItem" runat="server" OnClick="lnkItem_OnClick" OnCommand="lnkItem_OnCommand"></asp:LinkButton>     
     </asp:Panel> 
    </ItemTemplate>   
</asp:Repeater> 

的Javascript:

eval(LinkButton.attr('href'); //Causes Sys.ParameterCountException 
LinkButton.click();   //Nothing happens (no click event on LinkButton) 
LinkButton.trigger('click'); //Same as LinkButton.click() 

如果我設置的OnClientClick做回傳,點擊()功能開始工作,但我爬不起來Sys.ParameterCountException錯誤:

lnkItem.OnClientClick = String.Format("__doPostBack('{0}', '');", lnkItem.UniqueID); 

一些人建議將ScriptManager更改爲發佈模式,但沒有觸發回發,它只是刪除了錯誤信息。

eval(LinkButton.attr('href');可以在Google Chrome中使用。

回答

0

我不確定你遇到了什麼問題,但以下對我有用。

ASCX:

<asp:Repeater ID="repItems" runat="server"> 
    <ItemTemplate> 
     <asp:Panel ID="pnlItem" runat="server">      
      <asp:LinkButton ID="lnkItem" runat="server" Text='<%# Eval("Text") %>' OnClick="lnkItem_OnClick" OnCommand="lnkItem_OnCommand"></asp:LinkButton>     
     </asp:Panel> 
    </ItemTemplate>   
</asp:Repeater> 

<button onclick="document.getElementById('MainContent_repItems_lnkItem_0').click(); return false;">Huzzah!</button> 

代碼隱藏:

protected void Page_Load(object sender, EventArgs e) 
    { 
     List<Item> test = new List<Item>(); 
     test.Add(new Item { Text = "Item 1" }); 
     test.Add(new Item { Text = "Item 2" }); 
     repItems.DataSource = test; 
     repItems.DataBind(); 
    } 

    protected void lnkItem_OnClick(object sender, EventArgs e) 
    { 
     this.Controls.Add(new Literal() { Text = ((LinkButton)sender).Text }); 
    } 

    protected void lnkItem_OnCommand(object sender, EventArgs e) 
    { 
     this.Controls.Add(new Literal() { Text = ((LinkButton)sender).Text }); 
    } 

雙方的OnClick和按需火在這個例子中。

相關問題