PDA

View Full Version : سوال: چطوری با جاوا اسکریپت به مقدار تکست باکس های داخل GridView دسترسی پیدا کنیم؟



behzad1367
شنبه 15 مرداد 1390, 09:38 صبح
:گریه::قهقهه::گریه::گریه:سلام دوستان.واسه پروژه پایان ترمم به مشکل بزرگی برخوردم که هرچقدر سایتای ایرانی و خارجی رو سرچ کردم به جوابم نرسیدم.
یه گرید ویو دارم که دارای 3 ستون هست که داخل هر ستون یه تکست باکس گذاشتم.
میخام وقتی که کاربر داخل تکست باکس اول که مربوط به قیمت یک محصول هست و داخل تکست باکس دوم که مربوط به قیمت هر واحد محصول هست عددی رو وارد کرد بلافاصله این 2 مقدار در هم ضرب بشن و داخل تکست باکس سوم نتیجه ریخته بشه.
میخام با رویداد Text_Changed این کار انجام بشه
و نکته مهم این که من حدود 30 تا گرید دارم و اگه بخوام از برنامه نویسی سمت سرور استفاده کنم فکر میکنم حجم پردازش سنگین میشه بنابراین میخام از JavaScript استفاده کنم.
خوهشا منو به سایتای دیگه پاس ندید اگه کسی میتونه قطعه کدش رو برام بزاره یه دنیا ممنونشم.
فقط سریع تر:گیج::گریه:

Saman Hashemi
شنبه 15 مرداد 1390, 09:54 صبح
به اينجا (http://forums.asp.net/t/1194696.aspx)رجوع كنيد...!

behzad1367
شنبه 15 مرداد 1390, 10:05 صبح
به اينجا (http://forums.asp.net/t/1194696.aspx)رجوع كنيد...!

داداش ازین که جواب دادی ممنون ولی گفتم که تمام سایتای خارجی رو چک کردم از جمله سایتی که گفتی اما مشکلی که من با این کد ها دارم تو این قسمته:
var objGridView = document.getElementById('<%=GridView1.ClientID%>');
cellValue = objGridView.rows[rowIdx].cells[col].value;

این دستورات به نظر من واسه سمت سروره نه سمت کلاینت.اصلا جاوا اسکریپت همچین متدی objGridView.rows مثلا نداره.
جالبه همه سایتا ازین کدا دارن در صورتی که تو جاوا اینا جواب نمیده.خودم امتحان کردم.
منتظر جوابم

ASPX
شنبه 15 مرداد 1390, 10:46 صبح
برای این کار از جی کوئری استفاده نمایید!
فرض کنید سه تا تکست باکس در گیرید ویو دارید : به این تکست باکس ها کلاسهای txt1 :txt2 : txt3 نسبت دهید .



<asp:GridView ID="GridView1" runat="server"
EnableModelValidation="True">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="TextBox1" CssClass="txt1" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="TextBox1" CssClass="txt2" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="TextBox3" CssClass="txt3" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

و کد جاوا اسکریپت :

<script language="javascript">
$(document).ready(function () {

$(".txt1,.txt2").keyup(function () {

var a = $(this).val();
var b = $(this).parent().parent().find('.txt2').val();
//your op!
var c = parseInt(a) +parseInt( b);
$(this).parent().parent().find('.txt3').val(c);
});
});
</script>

یادت نره که باید فایل js جی کوئری رو بهش اد کنی

behzad1367
شنبه 15 مرداد 1390, 12:11 عصر
برای این کار از جی کوئری استفاده نمایید!
فرض کنید سه تا تکست باکس در گیرید ویو دارید : به این تکست باکس ها کلاسهای txt1 :txt2 : txt3 نسبت دهید .



<asp:GridView ID="GridView1" runat="server"
EnableModelValidation="True">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="TextBox1" CssClass="txt1" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="TextBox1" CssClass="txt2" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="TextBox3" CssClass="txt3" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

و کد جاوا اسکریپت :

<script language="javascript">
$(document).ready(function () {

$(".txt1,.txt2").keyup(function () {

var a = $(this).val();
var b = $(this).parent().parent().find('.txt2').val();
//your op!
var c = parseInt(a) +parseInt( b);
$(this).parent().parent().find('.txt3').val(c);
});
});
</script>

یادت نره که باید فایل js جی کوئری رو بهش اد کنی

داداش ممنون میشه بیشتر توضیح بدی ؟ از جی کویری سر در نمیارم.

hjran abdpor
شنبه 15 مرداد 1390, 16:02 عصر
اینو بخون :
http://barnamenevis.org/showthread.php?242469