[英]get value from checked checkbox inside a gridview using javascript
[英]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)
{
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.