PDA

View Full Version : نحوه پیدا کردن آی دی یک کنترل درون Repeater بوسیله جی کوئری



mmnoody2006
دوشنبه 14 آذر 1390, 23:09 عصر
با سلام

من یه ریپرتر دارم :



<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<div class="main">
<ul>
<li><%# eval("name") %></li>
<li>
<asp:Label ID="ratshow" runat="server" Text='<%# eval("rating") %> '></asp:Label>
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/sumbiter.gif"
CommandName="udata" CommandArgument='<%# Eval("id") %>'/></li>
<asp:Button ID="Button1" runat="server" Text="Button" dbid='<%# Eval("id") %>' />
</ul>
</div>
</ItemTemplate>
</asp:Repeater>

که می خوام با کلیک بر روی هر کدوم از button ها عمل خاصی رو انجام بده ولی با کد زیر button رو نمی شناسه ؟</script>



<script type="text/javascript">

$(document).ready(function () {
$("#<%= Button1.ClientID %>").click(function () {
alert("sEx");
});
});

hosseinrahmatei
سه شنبه 15 آذر 1390, 12:51 عصر
سلام
دوست عزیز شما ابتدا در کلاس main ، دکمه ها را پیدا کنید و سپس در انجا تعیین می کنید که اگر روی دکمه مورد نظر کلیک شد چه اتفاقی بیفتد در زیر کد جاوا اسکریپت موجود است
امیدوارم درست فهمیده باشم

<script type="text/javascript">
$(document).ready(function () {
$('.main').find('li').children(':button').click(fu nction () {
alert($(this).attr('value'));
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<div class="main">
<ul>
<li><%# Eval("name")%></li>
<li>
<input id="Button2" type="button" runat="server" clientidmode="AutoID" value='<%# eval("url") %>' />
</ul>
</div>
</ItemTemplate>
</asp:Repeater>

</div>
</form>
</body>
</html>

dorparasti
سه شنبه 15 آذر 1390, 13:49 عصر
ImageButton1 رو نمیشناسه چون زیر مجموعه یک Repeater هستش . موقع اجرا ID اون تغییر می کنه (پیشوند می گیره ) و نمی تونه پیداش کنه تا ClientID رو بهت بده .



یه راه اینه که بهش کلاس بدی و بر اساس کلاس رویداد کلیک رو هندل کنی . چون کلاس تغییر نمی کنه .