我有这个网格..
<tr>
<td class="TDCaption" style="text-align:
<div class="DivStyleWithScroll" style="width: 100%; overflow: scroll; height: 250px;">
<asp:GridView ID="grdReport" runat="server" AutoGenerateColumns="False" DataKeyNames="BookingNumber"
ShowFooter="True" EmptyDataText="No record found" PageSize="50" CssClass="mGRid">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="chkAll" runat="server" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkSelect" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="BookingDate" DataFormatString="{0:d}" HeaderText="Booking Date"
SortExpression="BookingDate" FooterText="Total" />
<asp:TemplateField HeaderText="Booking No.">
<ItemTemplate>
<asp:HyperLink ID="hypBtnShowDetails" runat="server" Text='<%# Bind("BookingNumber") %>' CssClass="grdCustName"
Target="_blank" NavigateUrl='<%# String.Format("~/Bookings/BookingSlip.aspx?BN={0}{1}{2}",Eval("BookingNumber"),-1,Eval("DeliveryDate")) %>'
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="CustomerName" HeaderText="Customer Name" SortExpression="CustomerName">
</asp:BoundField>
</Columns>
</asp:GridView>
所以,正如你所看到的,第一个col是一个复选框,我想要的是当我点击复选框时,我希望预订编号(在第二个col中)腐蚀到该复选框,存储在一个变量中。 比如说,用户勾选第3个复选框,预订号码。在第3行是29.我希望它被选中。另外,我还要再说一点,所有这些网格视图都在子页面中,并且在内容中,就像这样......
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
以防这可能会影响事情。我正在使用它..
$(document).ready(function () {
$("body").delegate(":checkbox", "change", function () {
var list = $(':checkbox:checked').size();
alert(list); // tells correctly how many I have checked
var list2 = $.map(':checkbox:checked', function () {
return $(this).closest('div').find('.grdCustName').text();
}).toString();
alert(list2); // nothing happens
var list3 = $.map(':checkbox:checked', function () {
return $(this).text();
}).get(); // nothing here too
alert(list3);
var list4 = $.map(':checkbox:checked', function (index) {
return $(this).closest('div').find('.grdCustName').eq(index).text();
}).get(); // nothing here too
alert(list4);
});
});
我甚至在没有通过索引的情况下尝试了所有这些,但仍然没有。我希望我清楚自己,如果有任何疑问只是评论,我会澄清!
所以,有人可以帮我这么做吗?
答案 0 :(得分:0)
我建议你使用RowDatabound事件来获取Javascript中特定列的值。请看下面的代码。这可能会给你一些想法......
代码背后: -
void GridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
DataRowView drv = (DataRowView)e.Row.DataItem;
if(e.Row.RowType == DataControlRowType.DataRow)
{
CheckBox chkSelect=(CheckBox)e.Row.Cells[0].FindControl("chkSelect");
chkSelect.Attributes.Add("onchange","setVariableValue('"+drv["BookingNumber"].ToString()+"')")
}
}
在Javascript中: -
function setVariableValue(bookNo)
{
alert(bookNo);
}