簡體   English   中英

嘗試使用Javascript從gridview獲取復選框選中的行值

[英]Trying to get checkbox checked rows values from gridview using Javascript

我有帶有復選框的 gridview 作為第一列,我正在嘗試使用附加到下面提到的復選框的 Javascript 函數來獲取所選復選框的完整行值。

我嘗試了不同的方法,但卡在了中間,這就是我再次在這里發布的原因。

但是有些我沒有進入 for 循環,我不確定我在這段代碼中哪里出錯了。

Javascript函數:

function checkForVirtual(){
    var GridView = document.getElementById('<%=gvPRCertInfo.ClientID %>');

    if (GridView.rows.length > 0) {
        alert('check');
        for (Row = 1; Row < GridView.rows.length; Row++) {                  
             alert("check 2 times"); 
              
            if (GridView.rows[Row].cell[1].type == "checkbox") {
              /// not getting into this 
             ///  alert is not firing even if the checkbox is there 
                alert('inside'); 
                if (GridView.rows[Row].cell[0].childNodes[0].checked) {
                    alert('checked');
                    var type = GridView.rows[Row].cell[3].childNodes[0].val();
                    alert(type);
                }
            }
        }
    }
}

這是我的網格視圖:

<asp:GridView ID="gvPRCertInfo" runat="server" AutoGenerateColumns="False" GridLines="None"
                        
     OnRowDataBound="gvPRCertInfo_RowDataBound"
     CssClass="data responsive">
   <Columns>
   <asp:TemplateField HeaderText="Select" SortExpression="">
        <HeaderTemplate>
            <asp:CheckBox ID="chkboxSelectAll" runat="server" AutoPostBack="true"  OnCheckedChanged="chkboxSelectAll_CheckedChanged"/>
         </HeaderTemplate>
          <ItemTemplate>
              <asp:CheckBox ID="chkCert" AutoPostBack="true" OnCheckedChanged="chkCert_CheckedChanged" OnClick="Javascript:checkForVirtual();" runat="server" />                                    
            <input type="hidden" id="hdnCertId" runat="server" value='<%# DataBinder.Eval(Container.DataItem, "CertId") %>' />
        </ItemTemplate>
     </asp:TemplateField>
    <asp:BoundField DataField="CertificateID" HeaderText="Certificate ID" HeaderStyle-HorizontalAlign="Center" />
       <asp:BoundField DataField="partID" HeaderText="Part Number" HeaderStyle-HorizontalAlign="Center" />
                  ..............................

    </Columns>
  .........................
 .......................
 </asp:GridView>

有人會幫忙解決這個問題嗎?

 <HeaderTemplate>
 <asp:CheckBox ID="chkboxSelectAll"  AutoPostBack="true" OnCheckedChanged="chkboxSelectAll_CheckedChanged" runat="server" Text="All" />
 </HeaderTemplate>

 <ItemTemplate>
 <asp:CheckBox ID="chkCert" runat="server" Font-Size="XX-Small" />                                     
 </ItemTemplate>  

 </asp:TemplateField>

在.cs文件中

protected void chkboxSelectAll_CheckedChanged(object sender, EventArgs e)
        {
            CheckBox chckheader = (CheckBox)gvPRCertInfo.HeaderRow.FindControl("chkboxSelectAll");
            foreach (GridViewRow row in gvPRCertInfo.Rows)
            {
                CheckBox CheckBoxchckrw = (CheckBox)row.FindControl("chkCert");
                if (chckheader.Checked == true)
                {
                    CheckBoxchckrw.Checked = true;
                }
                else
                {
                    CheckBoxchckrw.Checked = false;
                }
            }
        }

獲取按鈕點擊的詳細信息

protected void button_Click(object sender, EventArgs e)
        {
            try
            {
                int cnt = 0;

                DataTable dt = new DataTable();
                dt.Columns.Add("Certificate ID");
                dt.Columns.Add("Part Number");
                dt.Columns.Add("Part Description");


                foreach (GridViewRow row in gvPRCertInfo.Rows)
                {
                    if ((row.Cells[0].FindControl("chkCert") as CheckBox).Checked)
                    {
                        DataRow dr = dt.NewRow();
                        dr["Certificate ID"] = row.Cells[1].Text;
                        dr["Part Number"] = row.Cells[2].Text;
                        dr["Part Description"] = row.Cells[3].Text;

                        dt.Rows.Add(dr);
                        cnt++;
                    }
                }
                if (cnt <= 0)
                {
                    DataRow dr = dt.NewRow();
                    dr["Certificate ID"] = gvPRCertInfo.SelectedRow.Cells[1].Text;
                    dr["Part Number"] = gvPRCertInfo.SelectedRow.Cells[2].Text;
                    dr["Part Description"] = gvPRCertInfo.SelectedRow.Cells[3].Text;

                    dt.Rows.Add(dr);

                }

                 Session["Details"] = dt;
                Response.Redirect("url");
            }
            catch (Exception ex)
            {

            }
        }

您的問題可能是https://stackoverflow.com/a/47478969/8905879 的副本

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM