DetailsView事件的问题

时间:2011-07-17 20:55:37

标签: c# asp.net 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>

问题是我也允许分页。所以当点击某个页面时会触发Detailsview1_ItemCommand(例如,如果我们在第1页和第2页点击,那么事件被触发)..

我希望通过包装Server.Transfer语句来阻止这种情况,并创建一个条件来说明它是否是被点击的buttonLink而不是寻呼机... (我无法投射发件人......因为我得到了DetailsView)

有可能......

1 个答案:

答案 0 :(得分:1)

您已为LinkBut​​ton指定了CommandName,为什么不使用它?

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

顺便说一下,如果这个LinkBut​​ton没有执行任何服务器动作,除了转移到另一个页面上,最好在这里使用简单的锚标记。