Проблема с событиями DetailsView - PullRequest
0 голосов
/ 18 июля 2011

У меня есть список со ссылками на кнопки при нажатии на список кнопок, это событие вызвано:

    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);

}

Разметка кнопки Link.

   <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 Ответ

1 голос
/ 18 июля 2011

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

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

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

...