2012-08-29 11 views
0

我用UserControls有一個web應用程序。當我點擊網格中的菜單項或選擇按鈕時,比我看到第一次沒有反應。當我第二次點擊時,按鈕後面的事件將會觸發。點擊一個按鈕後的回發不反應不是第一次在UserControl中

我該怎麼做? 我已經給組件一個唯一的ID,事件在cs文件中。

我希望有人能幫助我。

謝謝。


的問題是在這兩個例子如下:

<asp:Menu ID="TabMenu" Width="100%" Height="25px" runat="server"   
        Orientation="Horizontal" CssClass="TabPages" 
        StaticEnableDefaultPopOutImage="False" 
        AutoPostBack="true" 
        OnMenuItemClick="DoMenuItemClick" > 
       <Items> 
        <asp:MenuItem Text="Domains" Value="0"></asp:MenuItem> 

在這種情況下,第一次,當你點擊一個菜單項,它看起來像只頁面重新加載。第二次點擊時,事件真的發生了。在此示例中,當您單擊菜單項時,將顯示右側的視圖。

<asp:GridView ID="gvwSelection" runat="server" 
     AllowPaging="True" 
     SelectedIndex="1"     
     AutoGenerateSelectButton="True" 
     OnSelectedIndexChanged="gvwSelectie_SelectedIndexChanged" 
     OnSelectedIndexChanging="gvwSelectie_SelectedIndexChanging" > 
     <PagerStyle ForeColor="#00257e" HorizontalAlign="Right" 
      BackColor="#FFFFFF"></PagerStyle> 

    </asp:GridView> 

例2:當你第一次點擊選擇按鈕,然後你感動的行沒有被選中。第一次之後一切正常。

該ID的名稱是固定的。 AutoPostBack設置爲True。 有事件鏈接。 網格有DataBinded。 有site.master一個default.aspx和UserControls被放置在一個佔位符。

我希望有人能幫助我。

回答

1

我發現並解決了這個問題。

我有一個動態的UserControl FAddress,每次他穿着另一個控件。 因此,我在該方法中添加了以下行:FAddress.ID =「UserControl1」;

問題是,控件每次都在加載。通過給這個動態控制一個固定的ID,這個項目已經解決了。

private void LoadPage(string APageName) 
{ 
    FAddress = null; 
    PlaceholderAddressTemplate.Controls.Clear(); 

    if (!string.IsNullOrEmpty(APageName)) 
    { 
     FAddress = (UserControl)LoadControl(string.Format("~/UserControls/{0}.ascx", 
        APageName)); 

     if (FAddress != null) 
     { 
      FAddress.ID = "UserControl1"; 

      PlaceholderAddressTemplate.Controls.Add(FAddress); 
      ShowOrHideComponents(); 
      FAddress.Focus(); 
     } 
     else 
      ShowOrHideComponents(); 
    } 
    else 
    ShowOrHideComponents(); 
} 
0

確保按鈕後面的autopostback屬性設置爲true,這可以解決您的問題。

+0

Autopostback設置爲True。這已經完成了。 – user1531040

相關問題