Как я могу динамически изменять текст моей кнопки на основе моего щелчка по строке Gridview?

#javascript #c# #jquery

#javascript #c# #jquery

Вопрос:

Я использую ASP.NET C #. У меня есть Gridview (пример показан ниже gridview) и кнопка. Когда я нажимаю на строки в gridview, текст моей кнопки должен меняться в зависимости от информации в gridview.

Например: если я нажимаю на первую строку, текст моей кнопки должен быть Альфа (название операции). Если я нажму на третью строку, на ней должен быть Чарли и так далее. Пользователь может щелкнуть любую строку любое количество раз, и кнопка должна меняться при каждом новом нажатии.

Я научился использовать OnRowDataBound и событие SelectedIndexChanged в gridview, чтобы поиграть со значением в gridview. Я смог распечатать каждую строку gridview с помощью меток.

 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                e.Row.Attributes["onclick"] = Page.ClientScript.GetPostBackClientHyperlink(GridView2, "Select$"   e.Row.RowIndex);
                e.Row.ToolTip = "Click to select this row. ";
            }
        }

        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {

            foreach (GridViewRow row in GridView1.Rows)
            {
                if (row.RowIndex == GridView1.SelectedIndex)
                {
                    row.BackColor = ColorTranslator.FromHtml("#A1DCF2");
                    row.ToolTip = string.Empty;
                    String ID;
                    alertNo = row.Cells[0].Text;
                    String Operation;
                    Operation = row.Cells[1].Text;
                    String Month;
                    Month = row.Cells[2].Text
                }
                else
                {
                    row.BackColor = ColorTranslator.FromHtml("#FFFFFF");
                    row.ToolTip = "Click to select this row";
                }
            }

        Label1.Visible = true;
        Label2.Visible = true;
        Label3.Visible = true;

        }
  

Однако я не понимаю, как я могу изменить текст кнопки, используя этот метод.

Буду признателен за любую помощь (Javascript / jQuery / C #). Пожалуйста, дайте мне знать, если вопрос в любом случае неясен.

Комментарии:

1. Добро пожаловать в Stack Overflow! У вас есть идентификатор кнопки, который вы можете использовать в качестве ссылки? Вы хотите сделать это с помощью Javascript? Если это так, вы можете найти элемент по идентификатору и манипулировать текстом.

Ответ №1:

В вашем коде C # вы можете попробовать следующее:

 String Operation;
Operation = row.Cells[1].Text;
Button1.Text = Operation; // Add this line just after you get the Operation value
  

Вы можете сделать это лучше / быстрее с помощью Javascript / jQuery, но поскольку у вас уже есть большая часть, использующая C #.

РЕДАКТИРОВАТЬ 1: Вот рабочий пример чистого jQueryhttps://jsfiddle.net/gy31Lufr/2 /.

Ответ №2:

Ваш HTML должен иметь атрибут id, связанный с каждой кнопкой, что-то вроде этого ;

 <button id="button2" name="Click button two!" type="button" > Click button two! </button>
...
<button id="buttonN" name="Click button N!" type="button" > Click button N! </button> ```

Now in the JQuery code , you can do a DOM traversal ,example;
$("#button1").click(function(){
  this.attr("name","Alpha (Operation name)");
});

$("#button2").click(function(){
  this.attr("name","Charlie on it");
});

This is a solution based on HTML and Jquery , the key ingredient is for every button to have an unique ID.