Как запустить метод RowDataBound в методе onClick ниже? - PullRequest
0 голосов
/ 01 июня 2018

У меня есть GridView, как следует

`<asp:GridView ID="gvSearchAll" runat="server" AutoGenerateColumns="False"
     OnPageIndexChanging="searchAll_PageIndexChanging" 
     onrowdatabound="OnRowDataBound">
         <Columns>
              <asp:BoundField DataField="A" HeaderText="A"/>
              <asp:BoundField DataField="B" HeaderText="B"/>
              <asp:BoundField DataField="C" HeaderText="C" />
              <asp:TemplateField HeaderText="Select">
                  <ItemTemplate>
                     <asp:CheckBox ID="RowSelector" runat="server" onclick="checkRadioBtn(this);" />
                  </ItemTemplate>
              </asp:TemplateField>                  
         </Columns>          
 </asp:GridView>`

OnRowDataBound на CodeBehind, у меня есть следующее:

protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {               
           e.Row.Cells[3].Attributes.Add("onclick", string.Format("DisplayDetails('{0}');", e.Row.RowIndex + 1));
           e.Row.Attributes["onmouseover"] = "onMouseOver('" + (e.Row.RowIndex + 1) + "')";
           e.Row.Attributes["onmouseout"] = "onMouseOut('" + (e.Row.RowIndex + 1) + "')";
        }        

    }

Теперь то, что я на самом деле хотел, была функция DisplayDetails для запуска, когдафлажок отмечен.

 function DisplayDetails(row) {
    var gridView = document.getElementById('gvSearchAll');  
    document.getElementById("A").value = gridView.rows[row].cells[1].innerText;
    document.getElementById("B").value = gridView.rows[row].cells[0].innerText;      
}

Что я хотел сделать, так это то, что когда флажок установлен, я хочу заполнить столбцы A и B строки конкретного флажка данными до некоторого текстового поля.

Функция onClick, checkRadioBtn (this), делает что-то еще.

Теперь, в настоящее время, я выполняю функцию Показать подробности всякий раз, когда щелкаю по всей ячейке CheckBox.Мне нужно выполнить функцию DisplayDetails в функции checkRadioBtn (this), но для этого мне нужно что-то вроде (this.row_index), которое я не могу понять, как это сделать.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 01 июня 2018

почему вы используете флажок, вы можете легко реализовать это, используя кнопку ссылки

, как это

<asp:GridView ID="gvSearchAll" runat="server" AutoGenerateColumns="False"
     OnPageIndexChanging="searchAll_PageIndexChanging"  >
         <Columns>
              <asp:BoundField DataField="A" HeaderText="A"/>
              <asp:BoundField DataField="B" HeaderText="B"/>
              <asp:BoundField DataField="C" HeaderText="C" />
              <asp:TemplateField HeaderText="Select">
                 <ItemTemplate  >                
                          <asp:LinkButton  ID="RowSelector"  Text="Details"   OnClientClick = "return Details(this)"  runat="server"  CommandName="Select" ></asp:LinkButton>
               </ItemTemplate>                 
         </Columns>          
 </asp:GridView>

в сценарии

 function Details(lnk) {
             var row = lnk.parentNode.parentNode;
             var rowIndex = row.rowIndex - 1;
             document.getElementById("A").value = gridView.rows[row].cells[1].innerText;
             document.getElementById("B").value = gridView.rows[row].cells[0].innerText; 
         }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...