为了账号安全,请及时绑定邮箱和手机立即绑定

如何在下面的 onClick 方法中运行 RowDataBound 方法?

如何在下面的 onClick 方法中运行 RowDataBound 方法?

Go
繁星淼淼 2021-07-13 17:19:20
我有一个 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>`CodeBehind 上的 OnRowDataBound,我有以下内容: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 的整个单元格时,我都会执行 Display Details 函数。我需要的是在 checkRadioBtn(this) 函数中执行 DisplayDetails 函数,但为此我需要类似 (this.row_index) 之类的东西,我无法弄清楚该怎么做。
查看完整描述

1 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

为什么要使用复选框,您可以使用链接按钮轻松实现


像这样


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

         }


查看完整回答
反对 回复 2021-07-17
  • 1 回答
  • 0 关注
  • 248 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信