Проблема с событиями 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);

}

Разметка LinkButton.

   <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 и создав условие, указывающее, была ли нажата кнопка Link, а не пейджер... (я не могу отправить отправителя... потому что я получаю DetailsView)

Является ли это возможным..


person Dmitry Makovetskiyd    schedule 17.07.2011    source источник
comment
Забудьте о Server.Transfer и найдите другой способ выполнять свою работу. Даже если вы решите одну проблему, вскоре появится вторая.   -  person Aristos    schedule 18.07.2011


Ответы (1)


Вы указали CommandName для LinkButton, так почему вы его не используете?

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

Кстати, если этот LinkButton не выполняет никаких действий сервера, кроме перехода на другую страницу, возможно, было бы лучше использовать здесь простой тег привязки.

person Yuriy Rozhovetskiy    schedule 17.07.2011