2011-07-17 68 views
0

我有一個按鈕,鏈接列表,當一個按鈕被點擊列表觸發此事件:問題與DetailsView控件事件

protected void DetailsView1_ItemCommand(object sender, DetailsViewCommandEventArgs e) 
{ 
    DetailsView dv = (DetailsView)sender; 
    LinkButton linkbtn = (LinkButton)dv.FindControl("LinkButton3"); 
    string threadID = e.CommandArgument.ToString(); 
    string threadName = linkbtn.Text; 
     Server.Transfer("~/AnswerQuestion.aspx?x=" + threadID+"&question=" + threadName + "&time=" + DateTime.Now); 

} 

標記LinkBut​​ton的的。

<ItemTemplate > 
      <asp:LinkButton ID="LinkButton3" runat="server" Text=<%# Eval("ThreadTitle") %> CommandName="Select" CommandArgument=<%# Eval("ThreadsID") %>>LinkButton</asp:LinkButton> 
     </ItemTemplate> 

的問題是,我允許被點擊某個頁面時,頁面too..so的Detailsview1_ItemCommand被觸發(例如,如果我們在第1頁和第2頁點擊,則該事件被觸發)..

我想通過包裝Server.Transfer語句來防止這種情況,並指出它是否是buttonLink被點擊而不是尋呼機... (我不能轉換sender..cause我得到DetailsView)

難道可以..

+0

忘記Server.Transfer並找到一種不同的方式來完成您的工作。即使你解決了一個問題,一秒鐘也會出現。 – Aristos

回答

1

你已經爲LinkBut​​ton指定了一個CommandName,所以你爲什麼不使用它?

if(e.CommandName == "Select") 
{ 
    //Do something 
} 

通過,如果這LinkBut​​ton的不只是轉移到另一個頁面也許會更好,這裏用簡單的錨標記執行任何服務器操作的方式。

+0

謝謝,它已經工作了! –