Я столкнулся с этой ситуацией и понятия не имею, как ее решить. У меня есть Gridview с этими столбцами, и этот пример значений:
CHECKBOX NAME SURNAME
-------------------------
Checkbox1 John Smith
Checkbox2 Jerry Rose
Checkobx3 Will Mathews
У меня есть проблема, чтобы получить значение из второго столбца из динамически созданного gridview, где установлен флажок. Поэтому я проверяю Checkbox2, и теперь хочу получить значение из столбца Name для этой строки. В этом случае это будет "Джерри".
Кроме того, если я проверил Checkbox1 и Checkbox2, я хочу, чтобы "John" и "Jerry" разделились запятой.
Мой код:
$('#<%=GridView1.ClientID %> tbody >tr >td >input:checked').each(function () {
alert($(this).find("td").eq(2).html());
var values+=$(this).find("td").eq(2).html()+","; //values splitted by comma
});
Ниже мой код сетки:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" >
<Columns>
<asp:TemplateField HeaderText="Select">
<ItemTemplate>
<asp:CheckBox ID="chkSelected" runat="server" />
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="50px" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="50px" />
<HeaderTemplate>
<asp:CheckBox ID="chkBxHeader"
onclick="javascript:SelectAllCheckboxes1(this);" runat="server" />
</HeaderTemplate>
</asp:TemplateField>
Когда я запускаю этот код, результаты просто "не определены". Что не так?
Пожалуйста, помогите мне.
Здесь скорректирован код JavaScript
:
var result = $('#<%=GridView1.ClientID %> tr td input[id*="chkSelected"][type=checkbox]:checked').map(function () {
return $(this).closest('tr').find('td').eq(2).text();
}).get().join();
С уважением, Uros