PDA

View Full Version : دسترسي به كامپوننت هاي درون ListView در Javascript



بانوآفتاب
چهارشنبه 03 شهریور 1389, 10:44 صبح
سلام، من يك ListView دارم كه يك template خاصي داره ، كدش رو ميزارم، توي آيتم هاش يك سري TEXTBOX و LABEL هست، ميخوام وقتي سمت كلاينت TEXTBOX ها تغيير ميكنند بر اساس فرمول خاصي كه توش نيازه به چند تا TEXTBOX و LABEL همون آيتم دسترسي داشته باشي ولي نميدونم چطور بايد اين كار رو انجام بدم، ممنون ميشم راهنماييم كنيد.


سيب
<asp:ListView ID="ListView1" runat="server"
DataKeyNames="project_type_break_id" onitemdatabound="ListView1_ItemDataBound">
<LayoutTemplate>
<table width="100%" cellpadding="0" cellspacing="0" style="border: 1px solid C#‎0C0C0">
<tbody>
<tr style="border: 1px solid C#‎0C0C0">
<td rowspan="2" style="border: 1px solid C#‎0C0C0; width: 100px;">
</td>
<td rowspan="2" style="border: 1px solid C#‎0C0C0; width: 100px;">
<center>
نوع قراداد
</center>
</td>
<td colspan="3" style="border: 1px solid C#‎0C0C0">
<center>
Joint</center>
</td>
<td colspan="3" style="border: 1px solid C#‎0C0C0">
<center>
كل قرارداد</center>
</td>
</tr>
<tr style="border: 1px solid C#‎0C0C0; width: 50px;">
<td style="border: 1px solid C#‎0C0C0">
<center>
درصد</center>
</td>
<td style="border: 1px solid C#‎0C0C0; width: 100px;">
<center>
ارزش</center>
</td>
<td style="border: 1px solid C#‎0C0C0; width: 100px;">
<center>
معادل ريالي</center>
</td>
<td style="border: 1px solid C#‎0C0C0; width: 50px;">
<center>
درصد</center>
</td>
<td style="border: 1px solid C#‎0C0C0; width: 100px;">
<center>
ارزش</center>
</td>
<td style="border: 1px solid C#‎0C0C0; width: 100px;">
<center>
معادل ريالي</center>
</td>
</tr>
</tbody>
<thead>
<tr id="itemPlaceHolder" runat="server">
</tr>
</thead>
<tfoot>
<table style="width: 100%; background-color: Window" cellpadding="0" cellspacing="0">
<tr>
<td rowspan="3" style="border: 1px solid C#‎0C0C0; width: 100px;">
<asp:Label ID="Label3" runat="server" Text="EPC"></asp:Label>
</td>
<td style="border: 1px solid C#‎0C0C0; width: 100px;">
<center>
ارزي</center>
</td>
<td style="border: 1px solid C#‎0C0C0">
<asp:Label ID="Label4" runat="server" Text="70%"></asp:Label>
</td>
<td style="border: 1px solid C#‎0C0C0">
<asp:Label ID="Label5" runat="server" Text="15300"></asp:Label>
</td>
<td style="border: 1px solid C#‎0C0C0">
<asp:Label ID="Label8" runat="server" Text="15300"></asp:Label>
</td>
<td style="border: 1px solid C#‎0C0C0">
<asp:Label ID="Label6" runat="server" Text="54%"></asp:Label>
</td>
<td style="border: 1px solid C#‎0C0C0">
<asp:Label ID="Label7" runat="server" Text="22000"></asp:Label>
</td>
<td style="border: 1px solid C#‎0C0C0">
<asp:Label ID="Label13" runat="server" Text="22000"></asp:Label>
</td>
</tr>
<tr>
<td style="border: 1px solid C#‎0C0C0">
<center>
ريالي</center>
</td>
<td style="border: 1px solid C#‎0C0C0">
<asp:Label ID="Label9" runat="server" Text="32%"></asp:Label>
</td>
<td style="border: 1px solid C#‎0C0C0">
<asp:Label ID="Label10" runat="server" Text="61000"></asp:Label>
</td>
<td style="border: 1px solid C#‎0C0C0">
<asp:Label ID="Label18" runat="server" Text="61000"></asp:Label>
</td>
<td style="border: 1px solid C#‎0C0C0">
<asp:Label ID="Label11" runat="server" Text="46%"></asp:Label>
</td>
<td style="border: 1px solid C#‎0C0C0">
<asp:Label ID="Label12" runat="server" Text="19000"></asp:Label>
</td>
<td style="border: 1px solid C#‎0C0C0">
<asp:Label ID="Label19" runat="server" Text="19000"></asp:Label>
</td>
</tr>
<tr>
<td style="border: 1px solid C#‎0C0C0">
<center>
كل ريالي</center>
</td>
<td style="border: 1px solid C#‎0C0C0">
<asp:Label ID="Label14" runat="server" Text="52%"></asp:Label>
</td>
<td style="border: 1px solid C#‎0C0C0">
<asp:Label ID="Label15" runat="server" Text="21400"></asp:Label>
</td>
<td style="border: 1px solid C#‎0C0C0">
<asp:Label ID="Label20" runat="server" Text="21400"></asp:Label>
</td>
<td style="border: 1px solid C#‎0C0C0">
<asp:Label ID="Label16" runat="server" Text="100%"></asp:Label>
</td>
<td style="border: 1px solid C#‎0C0C0">
<asp:Label ID="Label17" runat="server" Text="41000"></asp:Label>
</td>
<td style="border: 1px solid C#‎0C0C0">
<asp:Label ID="Label21" runat="server" Text="41000"></asp:Label>
</td>
</tr>
</table>
</tfoot>
</table>
</LayoutTemplate>
<ItemTemplate>
<table width="100%" cellpadding="0" cellspacing="0">
<tr style="border: 1px solid C#‎0C0C0">
<td rowspan="3" style="padding: 0px; margin: 0px; border: 1px solid C#‎0C0C0; width: 100px;">
<asp:CheckBox ID="CheckBox2" runat="server" Width="100px" Text='<%#Eval("project_type_name") %>' Checked='<%#Eval("selected") %>'/>
</td>
<td style="border: 1px solid C#‎0C0C0; width: 100px;">
<center>
ارزي</center>
</td>
<td style="padding: 5px; border: 1px solid C#‎0C0C0; width: 50px;">
<My:NumericTextBox ID="txt_exchange_per" runat="server" mod="Numeric" Text='<%#Eval("exchange_per") %>' />
</td>
<td style="padding: 5px; border: 1px solid C#‎0C0C0; width: 100px;">
<asp:Label ID="lbl_exchange_fee" runat="server"><%#Eval("exchange_fee") %></asp:Label>
</td>
<td style="padding: 5px; border: 1px solid C#‎0C0C0; width: 100px;">
<asp:Label ID="lbl_rialy_equal_fee" runat="server"><%#Eval("rialy_equal_fee")%></asp:Label>
</td>
<td style="padding: 5px; border: 1px solid C#‎0C0C0; width: 50px;">
<asp:Label ID="lbl_participant_exchange_per" runat="server" Enabled="false" />
</td>
<td style="padding: 5px; border: 1px solid C#‎0C0C0; width: 100px;">
<asp:Label ID="lbl_participant_exchange_fee" runat="server"><%#Eval("participant_exchange_fee")%></asp:Label>
</td>
<td style="padding: 5px; border: 1px solid C#‎0C0C0; width: 100px;">
<asp:Label ID="lbl_participant_rialy_equal" runat="server"><%#Eval("participant_rialy_equal")%></asp:Label>
</td>
</tr>
<tr style="border: 1px solid C#‎0C0C0">
<td style="border: 1px solid C#‎0C0C0; width: 100px;">
<center>
ريالي</center>
</td>
<td style="padding: 5px; border: 1px solid C#‎0C0C0; width: 50px;">
<My:NumericTextBox ID="txt_rialy_per" runat="server" mod="Numeric" Text='<%#Eval("rialy_per") %>' />
</td>
<td style="padding: 5px; border: 1px solid C#‎0C0C0; width: 100px;">
</td>
<td style="padding: 5px; border: 1px solid C#‎0C0C0; width: 100px;">
<asp:Label ID="lbl_rialy_fee" runat="server"><%#Eval("rialy_fee")%></asp:Label>
</td>
<td style="padding: 5px; border: 1px solid C#‎0C0C0; width: 50px;">
<asp:Label ID="lbl_participant_rialy_per" runat="server" Enabled="false" ></asp:Label>
</td>
<td style="padding: 5px; border: 1px solid C#‎0C0C0; width: 100px;">
</td>
<td style="padding: 5px; border: 1px solid C#‎0C0C0; width: 100px;">
<asp:Label ID="lbl_participant_rialy_fee" runat="server"><%#Eval("participant_rialy_fee")%></asp:Label>
</td>
</tr>
<tr style="border: 1px solid C#‎0C0C0; background-color: Yellow;">
<td style="border: 1px solid C#‎0C0C0; width: 100px;">
<center>
ريالي كل</center>
</td>
<td style="padding: 5px; border: 1px solid C#‎0C0C0; width: 50px;">
<asp:Label ID="lbl_total_per" runat="server"></asp:Label>
</td>
<td style="padding: 5px; border: 1px solid C#‎0C0C0; width: 100px;">
<asp:Label ID="lbl_total_exchange_fee" runat="server"><%#Eval("exchange_fee")%></asp:Label>
</td>
<td style="padding: 5px; border: 1px solid C#‎0C0C0; width: 50px;">
<asp:Label ID="lbl_total_total_rialy_fee" runat="server"><%#Eval("total_rialy_fee")%></asp:Label>
</td>
<td style="padding: 5px; border: 1px solid C#‎0C0C0; width: 100px;">
<asp:Label ID="lbl_total_participant_per" runat="server"></asp:Label>
</td>

<td style="padding: 5px; border: 1px solid C#‎0C0C0; width: 100px;">
<asp:Label ID="lbl_total_participant_exchange_fee" runat="server"><%#Eval("participant_exchange_fee")%></asp:Label>
</td>
<td style="padding: 5px; border: 1px solid C#‎0C0C0; width: 100px;">
<asp:Label ID="lbl_total_participant_total_rialy_fee" runat="server"><%#Eval("participant_total_rialy_fee")%></asp:Label>
</td>
</tr>
</table>
</ItemTemplate>
</asp:ListView>

mehdi.mousavi
پنج شنبه 04 شهریور 1389, 01:00 صبح
سلام، من يك ListView دارم كه يك template خاصي داره ، كدش رو ميزارم، توي آيتم هاش يك سري TEXTBOX و LABEL هست، ميخوام وقتي سمت كلاينت TEXTBOX ها تغيير ميكنند بر اساس فرمول خاصي كه توش نيازه به چند تا TEXTBOX و LABEL همون آيتم دسترسي داشته باشي ولي نميدونم چطور بايد اين كار رو انجام بدم، ممنون ميشم راهنماييم كنيد.

سلام.
شما باید ببینید ListView ی شما سمت Client به چه صورتی Render میشه. سپس سمت Client، بر اساس DOM Document ای که Render شده، بصورت Relative یا Absolute المنتهای مورد نظرتون رو آدرس کرده و کنترل اونها رو در دست بگیرید. بطور مثال، کلیه Element های Input ای که فلان CSS Class بهش Assign شده رو انتخاب کرده و بر اساس ورودی هر یک، فیلدهای دیگری رو به روز کنید.

اگر از jQuery یا دیگر JavaScript Framework ها استفاده نمی کنید، پیشنهاد می کنم Sizzle JavaScript Library (http://sizzlejs.com/) رو Download کرده و از اون استفاده کنید. jQuery خودش از این Library برای فراهم نمودن CSS Selector ها سود میبره که به شدت کارتون رو ساده خواهد کرد. اگر هم می تونید از jQuery استفاده کنید، که خوب، دیگه کل مساله بسادگی حل میشه...

موفق باشید.