PDA

View Full Version : حرفه ای: مشکل با updatepanel و postback شدن اطلاعات



mostafa_hamzeh
پنج شنبه 02 آذر 1391, 17:38 عصر
سلام به اساتید

من یه جای از یه update panel استفاده کردم ولی وقتی یه event فراخوانی میشه کل صفحه postback میشه یا رفرش میشه.

خیلی گشتم خیلی هم چک کردم نمی دونم مشکل کار کجاست.

لطفا کمک کنید !

fakhravari
پنج شنبه 02 آذر 1391, 23:37 عصر
کد HTML بزارید

smm2006sh
جمعه 03 آذر 1391, 13:04 عصر
سلام
مشکل را با تریگر کردن اون حل میکنی
یا با جاوا اسکریپت اونو حل کن

یا علی

mostafa_hamzeh
جمعه 03 آذر 1391, 17:46 عصر
میشه بیشتر توضیح بدید لطفا واقعا کارم گیره ! با تشکر

mostafa_hamzeh
جمعه 03 آذر 1391, 17:56 عصر
گذاشتم منطورتو نفهمیدم
کد HTML بزارید

mostafa_hamzeh
جمعه 03 آذر 1391, 18:15 عصر
با تریگر هم کار کردم کنترل ها و اونت ها رو add کردم ولی جواب نداد
سلام
مشکل را با تریگر کردن اون حل میکنی
یا با جاوا اسکریپت اونو حل کن

یا علی

bahareh1368
جمعه 03 آذر 1391, 23:11 عصر
سلام به اساتید

من یه جای از یه update panel استفاده کردم ولی وقتی یه event فراخوانی میشه کل صفحه postback میشه یا رفرش میشه.

خیلی گشتم خیلی هم چک کردم نمی دونم مشکل کار کجاست.

لطفا کمک کنید !

باید از دستور شرطی زیر استفاده کنی تا کل صفحه postBack نشه (در رویداد Page_Load باید بنویسی)

if(!page.IsPostBack)
{
// اگر صفحه برای اولین بار پست بک نمیشود بنابراین کل صفحه را پست بک نکن و فقط دستورات خاصی باید اجرا شود. مثلا فقط آپدیت پنل اجرا شود
}
else
{
// در غیر اینصورت اگر بار اولی است که صفحه پست بک میشود یکبار صفحه را کامل پست بک کن و عملیاتی را انجام بده. مثلا یک دیتا ست را پر کن
}

mostafa_hamzeh
شنبه 04 آذر 1391, 19:07 عصر
فرم لود بعد پست اتفاق می افته و تازه کار !ispostback اینه که بفهمه صفحه دفحه اول که لود میشه یا postback اصلا ربطی به AJAX نداره
باید از دستور شرطی زیر استفاده کنی تا کل صفحه postBack نشه (در رویداد Page_Load باید بنویسی)

if(!page.IsPostBack)
{
// اگر صفحه برای اولین بار پست بک نمیشود بنابراین کل صفحه را پست بک نکن و فقط دستورات خاصی باید اجرا شود. مثلا فقط آپدیت پنل اجرا شود
}
else
{
// در غیر اینصورت اگر بار اولی است که صفحه پست بک میشود یکبار صفحه را کامل پست بک کن و عملیاتی را انجام بده. مثلا یک دیتا ست را پر کن
}

fakhravari
شنبه 04 آذر 1391, 19:24 عصر
شما دستورات بزارید هم html و قسمت کد

mostafa_hamzeh
شنبه 04 آذر 1391, 20:03 عصر
اطلا متوجه نمی شم ! شاید به خاطر اینه که تازه کارم ! میشه بیشتر توضیح بدید ؟
شما دستورات بزارید هم html و قسمت کد

ali9698
شنبه 04 آذر 1391, 20:46 عصر
بابا منظورش اینه که کدهایی که نوشتی رو توی همین تایپک بزار که بقیه هم ببینن و مشکلت رو حل کنن :متفکر:
هم کدهای html هم C#

mostafa_hamzeh
شنبه 04 آذر 1391, 21:04 عصر
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;

public partial class AccessLayers_GenUser : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void txt_name_lab_SelectedIndexChanged(object sender, EventArgs e)
{
if (txt_name_lab.Text != "-----")
{
DataTable dt = new DataTable();
dt = Select.info_Lab("", txt_name_lab.Text);
lb_code.Text = dt.DefaultView[0].Row[0].ToString();
}
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
//=============== validtion
if (txt_username.Text == "")
{
lb_er1.Text = "نام کاربری را وارد کنید";
return;
}
else
{
lb_er1.Text = "";
}
if (txt_pass.Text == "")
{
lb_er2.Text = "کلمه عبور را وارد کنید";
return;
}
else
{
lb_er2.Text = "";
}
if (txt_rep_pass.Text == "")
{
lb_erF.Text = "تکرار کلمه عبور را وارد کنید";
return;
}
else
{
lb_erF.Text = "";
}
if (txt_pass.Text.Length <= 6)
{
lb_er2.Text = "کلمه عبور حداقل باید بیشتر شش کاراکتر باشد";
return;
}
else
{
lb_er2.Text = "";
}
if (txt_rep_pass.Text != txt_pass.Text)
{
lb_er2.Text = "کلمه عبور و تکرار آن باید برابر باشد";
return;
}
else
{
lb_er2.Text = "";
}
//==============================
DataTable dt = new DataTable();
string srv = "";
if (txt_srv.SelectedIndex == 0)
{
srv = "PandM";
}
if (txt_srv.SelectedIndex == 1)
{
srv = "Profile";
}
Insert.Tabel_Name = "tb_user_Lab";
String[] filed = { "lab_name", "lab_code", "user_name", "user_pass", "active", "status" };
Insert.Field = filed;
String[] value = { txt_name_lab.Text, lb_code.Text, txt_username.Text, txt_pass.Text, "true", srv };
Insert.Values = value;
Insert.SaveData();
Response.Redirect("~/MSG/Admin.aspx?msg=کاربر جدید به ثبت رسید&page=~/CP/AddUser.aspx");
}
protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
{
Response.Redirect("~/CP/Default.aspx");
}
}

mostafa_hamzeh
شنبه 04 آذر 1391, 21:05 عصر
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="GenUser.ascx.cs" Inherits="AccessLayers_GenUser" %>
<link href="../CSS/AdminPanelcss.css" rel="stylesheet" type="text/css" />
<link href="../CSS/Main.css" rel="stylesheet" type="text/css" />
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1">
<ProgressTemplate>
<img alt="" src="../Image/ajax-loader.gif" />
</ProgressTemplate>
</asp:UpdateProgress>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<table style="width: 100%">
<tr>
<td>
<asp:Label ID="Label16" runat="server" Font-Names="Tahoma" Font-Size="8pt" Text="نام لابراتوار" Width="100px"></asp:Label>
<asp:DropDownList ID="txt_name_lab" runat="server" AutoPostBack="True" CssClass="textbox" DataSourceID="SqlDataSource4" DataTextField="lab_name" DataValueField="lab_name" Font-Names="Tahoma" Font-Size="8pt" OnSelectedIndexChanged="txt_name_lab_SelectedIndexChanged" Width="150px">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource4" runat="server" ConnectionString="<%$ ConnectionStrings:db_connetion %>" SelectCommand="SELECT [lab_name] FROM [tb_Lab] ORDER BY [lab_name]"></asp:SqlDataSource>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label17" runat="server" Font-Names="Tahoma" Font-Size="8pt" Text="نام لابراتوار" Width="100px"></asp:Label>
<asp:Label ID="lb_code" runat="server" Font-Names="Tahoma" Font-Size="9pt" ForeColor="Red" Width="150px"></asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label18" runat="server" Font-Names="Tahoma" Font-Size="8pt" Text="نام کاربری" Width="100px"></asp:Label>
<asp:TextBox ID="txt_username" runat="server" CssClass="textbox" Font-Names="Tahoma" Font-Size="8pt" MaxLength="26" Width="180px"></asp:TextBox>
<asp:Label ID="lb_er1" runat="server" ForeColor="Red" Width="150px" Font-Names="Tahoma" Font-Size="9pt"></asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label19" runat="server" Font-Names="Tahoma" Font-Size="8pt" Text="کلمه عبور" Width="100px"></asp:Label>
<asp:TextBox ID="txt_pass" runat="server" CssClass="textbox" Font-Names="Tahoma" Font-Size="8pt" MaxLength="16" TextMode="Password" Width="180px"></asp:TextBox>
<asp:Label ID="lb_er2" runat="server" ForeColor="Red" Width="250px" Font-Names="Tahoma" Font-Size="9pt"></asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label20" runat="server" Font-Names="Tahoma" Font-Size="8pt" Text="تکرار کلمه عبور" Width="100px"></asp:Label>
<asp:TextBox ID="txt_rep_pass" runat="server" CssClass="textbox" Font-Names="Tahoma" Font-Size="8pt" MaxLength="16" TextMode="Password" Width="180px"></asp:TextBox>
<asp:Label ID="lb_erF" runat="server" ForeColor="Red" Width="150px" Font-Names="Tahoma" Font-Size="9pt"></asp:Label>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label15" runat="server" Text="نوع سرویس" Width="100px" Font-Names="Tahoma" Font-Size="9pt"></asp:Label>
<asp:DropDownList ID="txt_srv" runat="server" CssClass="textbox" Font-Names="Tahoma" Font-Size="8pt" ValidationGroup="regUser">
<asp:ListItem>نسخه کامل</asp:ListItem>
<asp:ListItem>نسخه صفحه شخصی</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td>
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Image/bt_save.jpg" OnClick="ImageButton1_Click" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<asp:ImageButton ID="ImageButton2" runat="server" ImageUrl="~/Image/bt_cansel.jpg" OnClick="ImageButton2_Click" />
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>

fakhravari
شنبه 04 آذر 1391, 21:59 عصر
ImageButton2_Click که باعث رفتن به صفحه دیگه میشه.
Response.Redirect("~/CP/Default.aspx");
ImageButton1_Click در پایان باعث پست بک میشه
Response.Redirect("~/MSG/Admin.aspx?msg=کاربر جدید به ثبت رسید&page=~/CP/AddUser.aspx");
OnSelectedIndexChanged="txt_name_lab_SelectedIndexChanged" دراپدان <asp:DropDownList ID="txt_name_lab" باعث پست بک نمیشه.

کدام عامل شما این کار رو انجام میده؟
روی کدوم کلیک می کنید؟

mostafa_hamzeh
یک شنبه 05 آذر 1391, 12:09 عصر
مرسی از زحمتی که کشیدید. من دقیقا مشکلم با DropDownList ID="txt_name_lab هستش خاصیت autopost backesh = true هستش و تو update panel هستش تو کد هم اگه ببینی تو قسمت txt_name_lab_SelectedIndexChanged کد نوشتم وقتی ایتم تغییر میکنه براساس update panel نباید صفحه رفرش شه ولی میشه

fakhravari
یک شنبه 05 آذر 1391, 13:42 عصر
تست کردم بدون پست بک کار میکنه
protected void txt_name_lab_SelectedIndexChanged(object sender, EventArgs e)
{
if (txt_name_lab.Text != "-----")
{
lb_code.Text = txt_name_lab.SelectedItem.Text;
}
}

مثال
http://itnevisan.com/Wether.aspx

mostafa_hamzeh
یک شنبه 05 آذر 1391, 23:30 عصر
آقای fakhravari من خودم هم تو یه صفحه دیگه همینو از اول ساختم درسته مشکل ندارم ولی این کد ها رو قرار میدم تو پروژه مشکل دار میشه تو کل پروژه این مشکل و دارم

fakhravari
دوشنبه 06 آذر 1391, 01:07 صبح
خب نمیدونم چی بگم.
بعد ها قضیش میفهمی که کجا داری اشتباه می کنیم.

mostafa_hamzeh
دوشنبه 06 آذر 1391, 02:13 صبح
خیلی متشکرم که وقت گذاشتی اگه تونستی کمکم کن