asp.net gridview onrowcommand -> (GridViewCommandEventArgs) - PullRequest
1 голос
/ 11 декабря 2011

Я хочу спросить, как получить текст или значение кнопки внутри вида сетки?но я хочу получить текстовое значение из этой onrowcommand, которая использует GridViewCommandEventArgs в качестве параметра.

, как будто я использую onrowdatabound ( GridViewRowEventArgs ), что делает его простымдля меня, чтобы получить button.text внутри gridview

string example = ((Button)e.Row.FindControl("btnStop")).Text;

Я хочу получить button.text для выполнения цикла if else внутри команды onrow.Кто-нибудь знает, как?

 <asp:GridView ID="GridView1" runat="server" AllowPaging="True" CellPadding="2" CellSpacing="2"    HorizontalAlign="Center"   PageSize="5"  Width="133%" DataKeyNames="SurveyID" DataSourceID="SqlDataSource1" 
  AutoGenerateColumns="False" onrowcommand="stop_survey" 
       onrowdatabound="filter_select" onselectedindexchanging="selected" 
                                   >

код позади

 public void filter_select(object sender, GridViewRowEventArgs e)
 {
    if (e.Row.RowType == DataControlRowType.DataRow)
    {....
     ((Button)e.Row.FindControl("btnStop")).Text = "Start"; 
    }
 }

 public void stop_survey(object sender, GridViewCommandEventArgs e)
 {
      //i want to get the "btnStop" button text which is nested on the gridview.
 }

Я хочу получить текст btnStop, так как я хочу иметь разные sqlstatement в зависимости от его текста (например, Start или Stop)проблема в том, что я не могу сделать e.Row внутри stop_survey.Пожалуйста, ведите меня.

1 Ответ

4 голосов
/ 11 декабря 2011

Создайте объект GridViewRow из ссылки строки источника команды.

GridViewRow row = (GridViewRow)((LinkButton)e.CommandSource).NamingContainer;

Но имейте в виду, что тип управления объектом, который вы используете для вызова события в приведенном выше коде, - LinkButton.Но если вы вызываете событие Rowcommand из Simple Button, вам нужно написать следующее:

GridViewRow row = (GridViewRow)((Button)e.CommandSource).NamingContainer;

После создания объекта строки Вы можете просто найти любой элемент управления из Gridview, используя rowindex.

Label LabelEmail = (Label)GridView1.Rows[row.RowIndex].FindControl("LabelEmail");

НаконецВы можете получить доступ к этим свойствам этого элемента управления.

LabelResult.Text = LabelEmail.Text; 

То же, что и выше Вы также можете найти Datakeys gridview с помощью GridViewRow rowindex.

int code = Convert.ToInt32(GridView1.DataKeys[row.RowIndex].Values[0].ToString()); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...