2012-04-13 37 views
0

.NET專業人士在那裏的OnClick事件爲什麼一個按鈕內用戶控件不會發生

我有,我想一個問題,與大家分享,如果能夠得到一個忠告:

我加載用戶控件動態使用datalist。我爲從數據庫中獲得的每一行加載這個usercontrol,它可能是這個控件的30個不同實例。

當用戶點擊按鈕,我希望能夠得到這個特定的usercontrol的屬性的值,在我的理解,我留意usercontrol ID做到這一點,這就是爲什麼我想分配我的「自定義ID」到每個加載的控件,所以我將能夠找到它。 也許我錯過了一些東西,也許這不是最好的方式,我願意提供建議。 反正.....

用戶控件代碼隱藏:

public partial class SearchBullet : System.Web.UI.UserControl 
{ 
public static int i = 0; 
private string casterLOGO; 

public string CasterLOGO 
{ 
    get { return casterLOGO; } 
    set { casterLOGO = value; } 
} 
private string casterNameSB; 

public string CasterNameSB 
{ 
    get { return casterNameSB; } 
    set { casterNameSB = value; } 
} 
private string player1NameSB; 

public string Player1NameSB 
{ 
    get { return player1NameSB; } 
    set { player1NameSB = value; } 
} 
private string player2NameSB; 

public string Player2NameSB 
{ 
    get { return player2NameSB; } 
    set { player2NameSB = value; } 
} 
private string mapSB; 

public string MapSB 
{ 
    get { return mapSB; } 
    set { mapSB = value; } 
} 
private string gameFrameSB; 

public string GameFrameSB 
{ 
    get { return gameFrameSB; } 
    set { gameFrameSB = value; } 
} 
private string serieSB; 

public string SerieSB 
{ 
    get { return serieSB; } 
    set { serieSB = value; } 
} 
private string race1SB; 

public string Race1SB 
{ 
    get { return race1SB; } 
    set { race1SB = value; } 
} 
private string race2SB; 

public string Race2SB 
{ 
    get { return race2SB; } 
    set { race2SB = value; } 
} 
private string castURLSB; 

public string CastURLSB 
{ 
    get { return castURLSB; } 
    set { castURLSB = value; } 
} 
private string likeAmountSB; 

public string LikeAmountSB 
{ 
    get { return likeAmountSB; } 
    set { likeAmountSB = value; } 
} 
private string qRYstring; 

public string QRYstring 
{ 
    get { return qRYstring; } 
    set { qRYstring = value; } 
} 

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (IsPostBack == false) 
    { 
     i++; 
     this.PreRender += new EventHandler(Cast_PreRender); 

     this.ID = "Result" + i.ToString(); 


    } 
    PlayButton.ID = i.ToString(); 

} 

void Cast_PreRender(object sender, EventArgs e) 
{ 
    PlayerName1.Text = Player1NameSB; 
    PlayerName2.Text = Player2NameSB; 
    CasterName.Text = CasterNameSB; 
    ImageRace1.ImageUrl = Race1SB; 
    ImageRace2.ImageUrl = Race2SB; 
    Map.Text = MapSB; 
    GameFrame.Text = GameFrameSB; 
    LikeAmount.Text = LikeAmountSB; 
    CasterLOGOIMG.ImageUrl = CasterLOGO; 
    PlayButton.AlternateText = "yay"; 

} 
protected void PlayButton_Click1(object sender, ImageClickEventArgs e) 
{ 

    Image img = (Image)sender; 
    string tt = img.AlternateText; 
    int j = 0; 
    Response.Redirect("default2.aspx"); 
    // lb.Text = img.ClientID; 

} 

}

aspx頁面:

<asp:DataList ID="WatchLaterDL" runat="server" DataSourceID="SDSWatchLater" RepeatColumns="1"> 
       <HeaderTemplate> 
       </HeaderTemplate> 
       <ItemTemplate> 
        <Search:Bullet runat="server" EnableViewState="false" ID="SearchResults" Player1NameSB='<%#Bind("Player_Name") %>' 
         Player2NameSB='<%#Bind("Expr1") %>' CasterNameSB='<%#Bind("Caster_Name") %>' 
         Race1SB='<%#Bind("Race_1") %>' Race2SB='<%#Bind("Race_2") %>' MapSB='<%# Bind("Map")%>' 
         GameFrameSB='<%#Bind("Game_Frame") %>' LikeAmountSB='<%#Bind("Like_Amount") %>' 
         CastURLSB='<%#Bind("Cast_URL") %>' CasterLOGO='<%#Bind ("Caster_LOGO") %>' /> 
       </ItemTemplate> 
       <SeparatorTemplate> 
        <br /> 
       </SeparatorTemplate> 
      </asp:DataList></div> 

的問題是,這樣做後,當我點擊按鈕什麼也沒有發生,我的意思是,當調試時,我從來沒有進入OnButton_Click事件。如果我刪除 - > this.ID =「Result」+ i.toString();和 - > PlayButton.ID = i.ToString();沒關係。

如果有任何選擇,你可能需要評估我的問題,生病很高興證明,並需要額外的代碼。 非常感謝您的幫助。

+0

它是動態加載的Web用戶控件還是自定義控件?你可以發佈一些代碼來顯示你是如何做到這一點的? – 5arx 2012-04-13 13:58:39

+0

爲什麼你要更改這些控件的ID?我可以看到它是如何引起問題的,但老實說,我從來不需要在代碼隱藏中更改ID。 – SouthShoreAK 2012-04-13 15:00:43

+0

負載和預渲染器中的變量i是什麼?似乎很懷疑它的值會在加載和預渲染之間匹配。您可以在載入過程中將您的i存儲在您的控件的視圖狀態中,而不是觸摸ID。 – jbl 2012-04-13 15:10:00

回答

1

我的解決辦法是這樣的:

的使用圖像BUTTOM代替

,我使用超鏈接。在用戶控件的

ON_LOAD事件,我分配到超鏈接的所有屬性我的用戶控件的SRC屬性,並通過使用

查詢字符串到另一個頁面的。

相關問題