مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

تاپیک مورد نظر بسته شده است

کاربر سایت

soudabeh

عضویت از 1395/01/12

فراخوانی چندباره کدهای فرم در ASP.net C#

  • سه شنبه 21 شهریور 1396
  • 12:34
تشکر میکنم

باسلام

من webformی دارم که یک counter داره و هربار که صفحه باز میشه این counter یکی بالا باید بره. مشکلی که  دارم اینه که کدهای داخل code behind دوبار فراخوانی میشن.

من کدم رو داخل if(!Ispostback) نوشتم و AutoEventWireup صفحه رو هم true قرار دادم. اما نمیفهمم چرا کدهای من همیشه دو دفعه call میشن.

متشکرم

پاسخ های این پرسش

تعداد پاسخ ها : 7 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 21 شهریور 1396
  • 13:44

کدتون رو قرار بدید تا بررسی کنم

کاربر سایت

soudabeh

عضویت از 1395/01/12

  • سه شنبه 21 شهریور 1396
  • 13:49

کدمربوط به code behind که داخل page_load نوشته شده:

   

            if (!Page.IsPostBack)
            {
                AmarDay amarday = db.AmarDays.Where(x => x.Date == ShamsiDate).FirstOrDefault();
                int amar = 1;
                if (amarday == null)
                {
                    db.AmarDayIns(1, ShamsiDate);
                    db.SaveChanges();
                }
                else
                {
                    amar = amarday.Amar.Value + 1;
                    db.AmarDayUpd(amar, ShamsiDate, amarday.Id, amarday.Id);
                    db.SaveChanges();
                }
                //----------------------------
                lbl_amarToday.Text = amar.ToString();
            }

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 21 شهریور 1396
  • 13:52

در کدام رویداد نوشتید و در کدام صفحه ؟

کاربر سایت

soudabeh

عضویت از 1395/01/12

  • سه شنبه 21 شهریور 1396
  • 13:52

این هم کد ابتدایی web form بخش html

<%@ Page Language="C#" ViewStateMode="Inherit"
    MasterPageFile="~/_Layout.master" AutoEventWireup="true" 
    Inherits="anti_virus_bit_defender" CodeBehind="bit-defender.aspx.cs" %>

کاربر سایت

soudabeh

عضویت از 1395/01/12

  • سه شنبه 21 شهریور 1396
  • 13:54

توی page_load نوشتم و دریکی از صفحات نمایش اطلاعات

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


 if (!this.IsPostBack)
        {
 //همین کدهایی که الان گذاشتم

        }

    }
}

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 21 شهریور 1396
  • 13:55

در رویداد زیر تست کنید

protected void Page_LoadComplete(object sender, EventArgs e)
{
    display();
}

کاربر سایت

soudabeh

عضویت از 1395/01/12

  • سه شنبه 21 شهریور 1396
  • 14:08

درست شد.متشکرم

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

تاپیک مورد نظر بسته شده و امکان درج پاسخ وجود ندارد

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)