PDA

View Full Version : سوال: خوادن مقدار یک ستون گریدویو با کلیک روی checkbox



mahnaz0098
چهارشنبه 10 مهر 1392, 09:52 صبح
سلام
من یک گریدویو دارم که ستون اول اون با
<asp:CheckBox پر شده و ستون دوم اون مقدار ID که از دیتابیس خونده میشه قرار گرفته . میخوام با هر بار کلیک روی چک باکس بتونم به مقدار ID که در ستون مقابل اون قرار گرفته دسترسی پیدا کنم . کد زیرو امتحان کردم ولی مقدار id رو undefined نشون میده.
لطفا راهنماییم کنید .



<asp:TemplateField>

<ItemTemplate>

<asp:CheckBox ID="chbTest" runat="server"

Checked='<%# Convert.ToBoolean(Eval("Checked")) %>' Enabled="true" code='<%# Eval("ID") %>' />

</ItemTemplate>

</asp:TemplateField>

<asp:BoundField DataField="ID" HeaderText="کد سفارش" >
<HeaderStyle Width="120px" />
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>





$(function () {


var btnDel = $('#<%=gvDetails.ClientID %> input[type=checkbox]');
btnDel.each(function () {
$(this).click(function () {

if ($(this).attr("checked") == "checked") {
$(this).closest("tr").css("background-color", "#accb32");

checked = 1;
id = $(this).attr("code");
alert(id);
}

sinoser
چهارشنبه 10 مهر 1392, 17:15 عصر
یه سوال مگه id برای تنها یک تگ نیست
پس یک دونه مورد بیشتر انتخاب نمیشه
خب استفاده از each دیگه چیه ؟!!

بعدشم من که اینجا تگ inputی نمی بینم پس دستور input[type=checkbox] واسه چیه؟

بعدشم دوست عزیز each و اکشن click رو نبستی با })})

دوست عزیز برای انتخاب تگی با id مثلا myid که خودش تگ input هست به شکل زیر عمل می کنیم


$('#<%=gvDetails.ClientID %>').click(function () {
if ($(this).attr("checked") == "checked") {
$(this).closest("tr").css("background-color", "#accb32");

checked = 1;
id = $(this).attr("code");
alert(id);
}
})

mahnaz0098
چهارشنبه 10 مهر 1392, 17:35 عصر
دوست عزیز تنها راهی که به من جواب داد همین استفاده از
input[type=checkbox]بود ینی وقتی اینو امتحان کردم وارد تابع شد . بعدشم من کدو کامل کپی نکردم به همین خاطر each وaction بسته نشده . حالا مشکلم اینه که چرا وقتی id رو میخونم undefined برمیگردونه؟؟

sinoser
چهارشنبه 10 مهر 1392, 18:12 عصر
اینو

alert(btnDel.length)

بعد

var btnDel = $('#<%=gvDetails.ClientID %> input[type=checkbox]');

بذار بگو چند رو چاپ می کنه
اگر 0 چاپ کرد یعنی همون حدس من که ساکتورت اشتباه
اگر 1 یا بیشتر بود بگو !

mahnaz0098
پنج شنبه 11 مهر 1392, 07:36 صبح
کد شمارو امتحان کردم . مقدارو 4 یعنی به تعداد سطرهایی که داخل گریدنمایش میده چاپ کرد .
ممنون از شما که وقت گذاشتین . با یه خط کد زیر جوابی رو که میخواستم بهم داد.



id = $(this).closest("tr").find("td:eq(1)").text();