PDA

View Full Version : حرفه ای: نمایش Div با JQuery در گرید درون UpdatePanel مشکل دارد



hgh.just.hony
شنبه 16 دی 1391, 10:32 صبح
سلام
من یه صفجه دارم که درونش یه UpdatePanel هست که صفحاتمو که UserControl هستند درون خودش بارگذاری می کنه.
یکی از این UserControlها حاوی یه گرید هست که درون گرید یه دکمه هست که قرار Div درون گرید که Display:none هست را نمایش بده اما نمایش نمی ده
چیکارش کنم؟

ahmad156
شنبه 16 دی 1391, 10:40 صبح
دوست عزیز با firebug ببینید چه خطایی میده؟ کدتون رو بذارین

hgh.just.hony
شنبه 16 دی 1391, 11:19 صبح
سلام
ممنونم از جوابتون


دوست عزیز با firebug ببینید چه خطایی میده؟ کدتون رو بذارین
این کدم :


<%@ Control Language="C#‎" AutoEventWireup="true" CodeFile="NormalTickets.ascx.cs" Inherits="NormalTickets" %>

<script src="http://code.jquery.com/jquery-latest.js"></script>


<style type="text/css">
.centered{
position:absolute;
width:500px;
height:500px;
left:30%;
top:10%;
margin-left:-30px;
margin-top:-30px;
}
#mainDiv{ direction:rtl;margin-left:auto;margin-right:auto;width:1024px;margin-top:10px;
font:10pt tahoma;
}
#content ,#header , #price , .float {float:right;width:478px
}


</style>
<script type="text/javascript">

$(document).ready(function () {
// bind your jQuery events here initially
$("#b").click(function () {
document.getElementById('dvSecondDiv').style.displ ay = 'block';
});
});

var prm = Sys.WebForms.PageRequestManager.getInstance();

prm.add_endRequest(function () {
// re-bind your jQuery events here
$("#b").click(function () {
document.getElementById('dvSecondDiv').style.displ ay = 'block';
});

});
اینو ^ از اینحا یافتم که کار نکرد و این کد زیری را قبلا گذاشته بوذم .نمومش بدون گرید کار کرد اما وقتی رفت تو گرید کار نکرد
// function ToggleDiv(Flag) {
// if (Flag == "first") {
// document.getElementById('dvFirstDiv').style.displa y = 'block';
// document.getElementById('dvSecondDiv').style.displ ay = 'none';
// }
// else {
// document.getElementById('dvFirstDiv').style.displa y = 'none';
// document.getElementById('dvSecondDiv').style.displ ay = 'block';
// }
// }
</script>
<div id="mainDiv">


<asp:GridView ID="dg" runat="server" Width="856px"
AutoGenerateColumns="False" GridLines="None"
onrowdatabound="dg_section_RowDataBound" AllowPaging="True"
PageSize="8">
<Columns>
<asp:TemplateField>
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<div id="mainGrid"
style="background-image: url('http://localhost/images/tbl.png'); background-repeat: no-repeat; width: 726px; height:52px; margin-right: 0px;">
<div style="float:right;margin-right:28px; width:130px; height:50px;padding-top:13px">
<asp:Label ID="lbl_thaeter" runat="server" ForeColor="#333333"
Text='<%# Eval("Descr") %>'></asp:Label>
</div>
<div style="float:right;margin-right:5px;width:120px;height:50px;padding-top:13px;">
<asp:Label ID="lbl_director" runat="server" ForeColor="#333333"
Text='<%# Eval("Descr1") %>'></asp:Label>
</div>
<div style="float:right;margin-right:36px; width:77px; height:50px; padding-top:13px;padding-right:5px;">
<asp:Label ID="Label11" runat="server" Text='<%# Eval("duration") %>'></asp:Label>
</div>
<div style="float:right;margin-right:11px; width:264px; height:50px;padding-top:13px">
<asp:Label ID="mony" runat="server" Text='<%# Eval("price") %>' Visible="False"></asp:Label>
<asp:Label ID="sid" runat="server" Text='<%# Eval("sid") %>' Visible="False"></asp:Label>
<asp:Label ID="Label15" runat="server" Text='<%# Eval("saloonName") %>'></asp:Label>
</div>
<div style="float:right;margin-right:7px; width:36px; height:35px; padding-top:5px">
<asp:Button ID="b" runat="server" Text="Show Second Div"/>
<div id="dvSecondDiv" style="display: none;background-color:Red;" class="centered">
</div>

</div>


</ItemTemplate>
<HeaderTemplate>
<table class="style1">
<tr>
<td class="style2">
نمایش</td>
<td class="style3">
کارگردان</td>
<td class="style4">
مدت اجرا</td>
<td>
مکان</td>
</tr>
</table>
</HeaderTemplate>
</asp:TemplateField>

</Columns>
<PagerStyle BackColor="#F0F0F0" ForeColor="#08afee" HorizontalAlign="Right" CssClass="pagination"
Font-Names="Tahoma"/>
</asp:GridView>
<div id="basket">

<div style="text-align:center;color:Gray;font:10pt tahoma;">
<telerik:RadAjaxPanel ID="RadAjaxPanel3" runat="server"
HorizontalAlign="NotSet" LoadingPanelID="RadAjaxLoadingPanel1" Width="540px">
<telerik:RadCaptcha ID="RadCaptcha1" runat="server" BackColor="Transparent"
CaptchaTextBoxCssClass="capthchaTextBox"
CaptchaTextBoxLabel="لطفاً حروف تصویر را وارد نمایید"
CaptchaTextBoxLabelCssClass="capthchalable" Font-Size="Small" Height="76px"
Visible="False" Width="381px">
</telerik:RadCaptcha>
</telerik:RadAjaxPanel>
<div style="margin-left: 43px; margin-right: 66px">

<asp:Button ID="btn_buyticket" runat="server" BackColor="#08AFEE"
BorderColor="#08AFEE" BorderStyle="Solid" BorderWidth="1px" Font-Size="10pt"
ForeColor="White" Text="اظافه به سبد خرید" Width="127px"
onclick="btn_buyticket_Click" />

</div>
</div>
</div>
</div>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="Select distinct S.SID as SID,Descr,SaloonName,unitprice From [Section] S , SansDet D,Saloon S1 Where S.SID=D.SID And D.Date1&gt;dbo.persiandate(getdate()) and S.SaloonID=S1.SaloonID And SS=1 and type=1 Order by S.SID "></asp:SqlDataSource>



firebug یعنی چی ؟


اینم نمونه کد بدون گرید :


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm7.aspx.cs" Inherits="gisheNew.WebForm7" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<style>
p { background:yellow; }
.centered{
position:absolute;
width:500px;
height:500px;
left:30%;
top:10%;
margin-left:-30px;
margin-top:-30px;
}
</style>


<script type="text/javascript">
function ToggleDiv(Flag) {
if (Flag == "first") {
document.getElementById('dvFirstDiv').style.displa y = 'block';
document.getElementById('dvSecondDiv').style.displ ay = 'none';
}
else {
document.getElementById('dvFirstDiv').style.displa y = 'none';
document.getElementById('dvSecondDiv').style.displ ay = 'block';
}
}
</script>



</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="btn" runat="server" Text="Show First Div"
OnClientClick="ToggleDiv('first');return false;" />
<asp:Button ID="Button1" runat="server" Text="Show Second Div"
OnClientClick="ToggleDiv('second');return false;" />
<br />
<div id="dvFirstDiv" style="display: none;">
First Div
</div>
<div id="dvSecondDiv" style="display: none;background-color:Red;" class="centered">
Second Div
</div>
</ContentTemplate>
</asp:UpdatePanel>

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

hgh.just.hony
شنبه 16 دی 1391, 11:21 صبح
با RadWindow (http://demos.telerik.com/aspnet-ajax/controls/examples/integration/gridandwindow/defaultcs.aspx?product=window)i هم کار می حواستم بکنم که فهمیدم اونم تو Updatepanel کار نمی کنه
تراخدا کمکم کنین خیلی گیییییییییییییییییییییییی یییییییییییرررررررررررممم مم:گریه:
کار منم شبیه Radwindow هست اما منEdit نمی کنم کار دیگه شبیه اون می خوام

ahmad156
شنبه 16 دی 1391, 12:14 عصر
دوست عزیز به جای اینکه کد های jquery رو توی document.ready بذارین داخل تابع pageLoad بذارین

function pageLoad(){
your code
}

hgh.just.hony
شنبه 16 دی 1391, 12:28 عصر
یه سوال
من اگه بزارمش تو pageLoad پس باید تو <form onloade="pageLoad"> صداش کنم اما من که صفحم usercontrol هست پس کجا صداش کنم؟
میشه بیشتر کمکم کنین؟:خجالت:

ahmad156
شنبه 16 دی 1391, 12:41 عصر
اشتباه نکنین دوست عزیز .تابع pageLoad فقط جایگزین document.ready میشه و قرار نیست جایی pageLoad رو فراخوانی کنین

hgh.just.hony
شنبه 16 دی 1391, 12:45 عصر
function pageLoad(){ {
// bind your jQuery events here initially
$("#b").click(function () {
document.getElementById('dvSecondDiv').style.displ ay = 'block';
});
});

var prm = Sys.WebForms.PageRequestManager.getInstance();

prm.add_endRequest(function () {
// re-bind your jQuery events here
$("#b").click(function () {
document.getElementById('dvSecondDiv').style.displ ay = 'block';
});
});

بازم کارنکرد
کمکم کنین.
خواهش میکنم:گریه:

ahmad156
شنبه 16 دی 1391, 12:54 عصر
تابع ToggleDiv رو توی <body> قرار بدین

hgh.just.hony
شنبه 16 دی 1391, 13:29 عصر
من تو Usercontrol که صفحم هست body ندارم
زمانی که اجرا میشه خود به خود درون body مربوط به masteram, قرار میگیره