hgh.just.hony
شنبه 30 دی 1391, 11:35 صبح
سلام
من یه اپدیت دارم که توش یه تایمر هست که تعداد و قیمت کل بلیت هایی که کاربر خریداری کرده را هر 6 ثانیه یه بار چک می کنه
و یه صفحه دارم که یه updatepanel داره که صفحاتم بعضی هاشون به شکل یوزر کنترل هستن و یا با iframe بعضی دیگه رو لود می کنم
مشکلم اینه که با اپدیت شدم updatepanel اولی که تایمر داره updatepanel دومی که مخصوص لود صفحاتمه هم رفرش میشه و اگه کاربر در حال مشاهده سایر بلیط ها باشه و 2 ثانیه قبلش یه بلیط جدید به سبد خریدش اضاف کرده بوده وسط کار که داره بلیط های دیگه رو میبینه صفحم رفرش شده و یه صفحه اول میره
(مسترم کلا هیچ رفرشی نداره و همه صفحات تو همون صفحه اصلیم لود میشه)
اینم کدهام :
1----------------------------- یوزرکنترل سبد خرید :
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Basket.ascx.cs" Inherits="Basket" %>
<asp:Timer ID="Timer1" runat="server" ontick="Timer1_Tick" ></asp:Timer>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" >
<ContentTemplate>
<table border="0" style="background-image:url('images/content_bg.png');background-repeat:no-repeat;
font:10pt tahoma;color:Black; width: 129px;">
<tr>
<td style="text-align:center" >
<strong> <span style="font-size: 10pt; font-family: Tahoma; color: #333333;">سبد خرید</span></strong>
</td>
</tr>
<tr>
<td align="right">
<asp:Panel ID="Panel2" runat="server" Width="148px">
<span style="font-size: 9pt; font-family: Tahoma"> تعداد </span>
<asp:Label ID="Label1" runat="server" Font-Names="tahoma" Font-Size="X-Small">0</asp:Label><span
style="font-size: 9pt; font-family: Tahoma"> بلیط</span><br />
<span style="font-size: 9pt; font-family: Tahoma">
معادل </span>
<asp:Label ID="Label2" runat="server" Font-Names="Tahoma" Font-Size="X-Small">0</asp:Label><span
style="font-size: 9pt; font-family: Tahoma"> ریال</span>
</asp:Panel>
<asp:Panel ID="Panel1" runat="server" Width="150px">
<span style="font-size: 9pt; font-family: Tahoma">سبد خرید خالی است.</span></asp:Panel>
</td>
</tr>
<tr>
<td align="center">
</td>
</tr>
</table>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
</Triggers>
</asp:UpdatePanel>
2----------------------------- یوزرکنترل سبد خرید#c :
protected void Page_Load(object sender, EventArgs e)
{
GetBasketData();
try
{
if (Convert.ToInt32((Label1.Text)) > 0)
{
Panel2.Visible = true;
Panel1.Visible = false;
}
}catch
{
Panel1.Visible = true;
Panel2.Visible = false;
}
}
public void GetBasketData()
{
SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrin gs["ConnectionString"].ConnectionString);
string sql = "SELECT sum(QSale.Qty) AS T,Sum(Sale.Qty * Sale.UPrice) AS s FROM Sale INNER JOIN SansDet ON Sale.SID = SansDet.SID AND Sale.SansNumber = SansDet.SansNumber INNER JOIN Section ON Sale.SID = Section.SID INNER JOIN Saloon ON Section.SaloonID = Saloon.SaloonID where payment<>1 and (basketid in (select basketID from alivebasket where username='" + Page.User.Identity.Name + "')) and Sale.UserName='" + Page.User.Identity.Name + "'";
cnn.Open();
SqlCommand cmd = new SqlCommand(sql, cnn);
SqlDataAdapter dap = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
dap.Fill(ds);
Label1.Text = ds.Tables[0].Rows[0][0].ToString();
Label2.Text = ds.Tables[0].Rows[0][1].ToString();
cnn.Close();
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("buy_det.aspx");
}
protected void Timer1_Tick(object sender, EventArgs e)
{
GetBasketData();
}
3----------------------------- hاینم صفحه اصلیم :
<asp:UpdatePanel ID="UpdatePanel1" runat="server" >
<ContentTemplate>
<div style="margin-right:2%;margin-left:2%;margin-top:1%;" id="MainUserMenu">
<div class="container">
<ul id="nav" >
<li><asp:LoginStatus ID="exit" runat="server" LoginText="ورود" LogoutText="خروج"
LogoutAction="Redirect" LogoutPageUrl="~/vinaticket.aspx" Font-Names="Tahoma"
Font-Size="10pt" /></li>
<li><asp:LinkButton ID="basket" runat="server" onclick="basket_Click"
Font-Names="Tahoma" Font-Size="10pt">سبد خرید و پرداخت</asp:LinkButton></li>
<li><asp:LinkButton ID="buy_ticket" runat="server" onclick="buy_ticket_Click"
Font-Names="Tahoma" Font-Size="10pt">خرید بلیط </asp:LinkButton></li>
<li><asp:LinkButton ID="your_ticket" runat="server" onclick="your_ticket_Click"
Font-Names="Tahoma" Font-Size="10pt">بلیط های شما</asp:LinkButton></li>
<li><a class="hsubs" style="font:10pt tahoma;" href="#">کاربر</a>
<ul class="subs">
<li><asp:LinkButton ID="pass" runat="server" onclick="pass_Click">تغییر رمز</asp:LinkButton></li>
<li><asp:LinkButton ID="profile" runat="server" onclick="profile_Click">تغییر مشخصات</asp:LinkButton></li>
</ul>
</li>
</ul>
</div>
</div>
<asp:PlaceHolder ID="PlaceHolder1" runat="server" ViewStateMode="Enabled">
</asp:PlaceHolder>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="exit" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdateProgress ID="UpdateProgress1" DisplayAfter="0"
AssociatedUpdatePanelID="UpdatePanel1" runat="server">
<ProgressTemplate>
<div style="top:45%;left:45%;position:absolute">
لطفا منتظر بمانید<br />
<img src="images/loadmain.png" alt="منتظر بمانید" />
</div>
</ProgressTemplate>
</asp:UpdateProgress>
</div>
</asp:Content>
<asp:Content ID="c3" ContentPlaceHolderID="ContentPlaceHolder2" runat="server">
<uc2:Basket ID="Basket1" runat="server" />
<div style="text-align:center;">
<asp:Button
ID="btn_pay_updtpnl" runat="server" Font-Names="Tahoma" Font-Size="9pt"
Text="پرداخت" OnClick="btn_pay_updtpnl_Click" BackColor="#08AFEE"
BorderColor="#08AFEE" BorderStyle="Solid" BorderWidth="2px" Font-Bold="True"
ForeColor="White" />
</div>
</asp:Content>
من یه اپدیت دارم که توش یه تایمر هست که تعداد و قیمت کل بلیت هایی که کاربر خریداری کرده را هر 6 ثانیه یه بار چک می کنه
و یه صفحه دارم که یه updatepanel داره که صفحاتم بعضی هاشون به شکل یوزر کنترل هستن و یا با iframe بعضی دیگه رو لود می کنم
مشکلم اینه که با اپدیت شدم updatepanel اولی که تایمر داره updatepanel دومی که مخصوص لود صفحاتمه هم رفرش میشه و اگه کاربر در حال مشاهده سایر بلیط ها باشه و 2 ثانیه قبلش یه بلیط جدید به سبد خریدش اضاف کرده بوده وسط کار که داره بلیط های دیگه رو میبینه صفحم رفرش شده و یه صفحه اول میره
(مسترم کلا هیچ رفرشی نداره و همه صفحات تو همون صفحه اصلیم لود میشه)
اینم کدهام :
1----------------------------- یوزرکنترل سبد خرید :
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Basket.ascx.cs" Inherits="Basket" %>
<asp:Timer ID="Timer1" runat="server" ontick="Timer1_Tick" ></asp:Timer>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" >
<ContentTemplate>
<table border="0" style="background-image:url('images/content_bg.png');background-repeat:no-repeat;
font:10pt tahoma;color:Black; width: 129px;">
<tr>
<td style="text-align:center" >
<strong> <span style="font-size: 10pt; font-family: Tahoma; color: #333333;">سبد خرید</span></strong>
</td>
</tr>
<tr>
<td align="right">
<asp:Panel ID="Panel2" runat="server" Width="148px">
<span style="font-size: 9pt; font-family: Tahoma"> تعداد </span>
<asp:Label ID="Label1" runat="server" Font-Names="tahoma" Font-Size="X-Small">0</asp:Label><span
style="font-size: 9pt; font-family: Tahoma"> بلیط</span><br />
<span style="font-size: 9pt; font-family: Tahoma">
معادل </span>
<asp:Label ID="Label2" runat="server" Font-Names="Tahoma" Font-Size="X-Small">0</asp:Label><span
style="font-size: 9pt; font-family: Tahoma"> ریال</span>
</asp:Panel>
<asp:Panel ID="Panel1" runat="server" Width="150px">
<span style="font-size: 9pt; font-family: Tahoma">سبد خرید خالی است.</span></asp:Panel>
</td>
</tr>
<tr>
<td align="center">
</td>
</tr>
</table>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
</Triggers>
</asp:UpdatePanel>
2----------------------------- یوزرکنترل سبد خرید#c :
protected void Page_Load(object sender, EventArgs e)
{
GetBasketData();
try
{
if (Convert.ToInt32((Label1.Text)) > 0)
{
Panel2.Visible = true;
Panel1.Visible = false;
}
}catch
{
Panel1.Visible = true;
Panel2.Visible = false;
}
}
public void GetBasketData()
{
SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrin gs["ConnectionString"].ConnectionString);
string sql = "SELECT sum(QSale.Qty) AS T,Sum(Sale.Qty * Sale.UPrice) AS s FROM Sale INNER JOIN SansDet ON Sale.SID = SansDet.SID AND Sale.SansNumber = SansDet.SansNumber INNER JOIN Section ON Sale.SID = Section.SID INNER JOIN Saloon ON Section.SaloonID = Saloon.SaloonID where payment<>1 and (basketid in (select basketID from alivebasket where username='" + Page.User.Identity.Name + "')) and Sale.UserName='" + Page.User.Identity.Name + "'";
cnn.Open();
SqlCommand cmd = new SqlCommand(sql, cnn);
SqlDataAdapter dap = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
dap.Fill(ds);
Label1.Text = ds.Tables[0].Rows[0][0].ToString();
Label2.Text = ds.Tables[0].Rows[0][1].ToString();
cnn.Close();
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("buy_det.aspx");
}
protected void Timer1_Tick(object sender, EventArgs e)
{
GetBasketData();
}
3----------------------------- hاینم صفحه اصلیم :
<asp:UpdatePanel ID="UpdatePanel1" runat="server" >
<ContentTemplate>
<div style="margin-right:2%;margin-left:2%;margin-top:1%;" id="MainUserMenu">
<div class="container">
<ul id="nav" >
<li><asp:LoginStatus ID="exit" runat="server" LoginText="ورود" LogoutText="خروج"
LogoutAction="Redirect" LogoutPageUrl="~/vinaticket.aspx" Font-Names="Tahoma"
Font-Size="10pt" /></li>
<li><asp:LinkButton ID="basket" runat="server" onclick="basket_Click"
Font-Names="Tahoma" Font-Size="10pt">سبد خرید و پرداخت</asp:LinkButton></li>
<li><asp:LinkButton ID="buy_ticket" runat="server" onclick="buy_ticket_Click"
Font-Names="Tahoma" Font-Size="10pt">خرید بلیط </asp:LinkButton></li>
<li><asp:LinkButton ID="your_ticket" runat="server" onclick="your_ticket_Click"
Font-Names="Tahoma" Font-Size="10pt">بلیط های شما</asp:LinkButton></li>
<li><a class="hsubs" style="font:10pt tahoma;" href="#">کاربر</a>
<ul class="subs">
<li><asp:LinkButton ID="pass" runat="server" onclick="pass_Click">تغییر رمز</asp:LinkButton></li>
<li><asp:LinkButton ID="profile" runat="server" onclick="profile_Click">تغییر مشخصات</asp:LinkButton></li>
</ul>
</li>
</ul>
</div>
</div>
<asp:PlaceHolder ID="PlaceHolder1" runat="server" ViewStateMode="Enabled">
</asp:PlaceHolder>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="exit" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdateProgress ID="UpdateProgress1" DisplayAfter="0"
AssociatedUpdatePanelID="UpdatePanel1" runat="server">
<ProgressTemplate>
<div style="top:45%;left:45%;position:absolute">
لطفا منتظر بمانید<br />
<img src="images/loadmain.png" alt="منتظر بمانید" />
</div>
</ProgressTemplate>
</asp:UpdateProgress>
</div>
</asp:Content>
<asp:Content ID="c3" ContentPlaceHolderID="ContentPlaceHolder2" runat="server">
<uc2:Basket ID="Basket1" runat="server" />
<div style="text-align:center;">
<asp:Button
ID="btn_pay_updtpnl" runat="server" Font-Names="Tahoma" Font-Size="9pt"
Text="پرداخت" OnClick="btn_pay_updtpnl_Click" BackColor="#08AFEE"
BorderColor="#08AFEE" BorderStyle="Solid" BorderWidth="2px" Font-Bold="True"
ForeColor="White" />
</div>
</asp:Content>