الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

pop server

مغلق
بدأه سوزان توفيق في 8 أبريل 2005 · 7 رد · 793 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته .

أما بعد ,

يوجد لدي مشكلة في جلب الرسائل بأستخدام (pop server) , وقد استعملت أكثر من بريد كتجربة لبرنامجي ولم استطيع أخذ الرسائل من server ولاادري ما المشكلة ,وقد جربت بريد : جواب , الهوتميل , ياهو , وغيرها وتحدث لي نفس المشكلة , ربما بسبب انها ليست مجانية , ارجو المساعدة في البريد المجاني المناسب ؟

-----------------------------------

السؤال الثاني :

اذا كان لدي datagrid في صفحة واريد ان استخدمها في صفحة اخرى, وذلك بتعريف object من class الذي فيه datagrid ومن ثم ستعمال هذا object في الصفحة الاخرى , وللتوضيح اكثر كتبت هذا الكود

	public class WebForm3 : System.Web.UI.Page
	{
  protected System.Web.UI.WebControls.Button Button1;
  protected System.Web.UI.WebControls.Button Button2;
  protected System.Web.UI.WebControls.Button Button3;
  protected System.Web.UI.WebControls.ImageButton ImageButton1;
  public System.Web.UI.WebControls.DataGrid DataGrid1;

هذا الكود في الصفحة الاولى , اما كودالصفحة الثانية فهو :

public class WebForm1 : System.Web.UI.Page
	{
  WebForm3 webform=new WebForm3();

}

	private void LinkButton2_Click(object sender, System.EventArgs e)
  {
 	 OleDbConnection con = new System.Data.OleDb.OleDbConnection ( @"Data Source=""C:\Inetpub\wwwroot\WebApplication1/db1.mdb"";Jet OLEDB:Engine Type=5;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=False;Extended Properties=;Jet OLEDB:Encrypt Database=False;User ID=Admin;Jet OLEDB:Global Bulk Transactions=1");
 	 con.Open();
 	 OleDbDataAdapter da=new System.Data.OleDb.OleDbDataAdapter("select * from draft where username like '"+s.Trim()+ "'",con);
 	 DataSet ds = new DataSet();
 	 da.Fill(ds);
 	 if( ds.Tables[0].Rows.Count > 0)
 	 {    

    webform.DataGrid1.DataSource=ds;
    webform.DataGrid1.DataMember=ds.Tables[0].TableName;
    webform.DataGrid1.DataBind ();
 	 }

ولكن يعطيني خطاء وهو :

Object reference not set to an instance of an object

عند سطر

webform.DataGrid1.DataSource=ds;

وارجو المساعدة , واسف على الاطالة .

#2

اختي بالنسبة لسوؤالك الثاني..

افضل لك بأن تستخدمي ascx file ..لكي توصل الى ال controls او members اللي داخله..

بالتوفيق

techvisio.gif

اللهم انصر إخواننا المجاهدين في كل مكان..

#3

بالنسبة للسؤال الأول، اغلب الشركات التى تقدم البريد المجاني مثل ياهو وهوتميل لا توفر إستخدام Pop3 بشكل مجاني، فهو فقط من ضمن الخطة المدفوعة وليس المجانية

جوجل وفر الخدمة بشكل مجاني لكني لم اجرب استخدامها حتى الان، جربي إستخدمي جوجل فهو خفيف ولذيذ واصبح يقدم مساحة 2 جيجا مجانا وهي بإزدياد كل ثانية

اما بالنسبة للسؤال الثاني فلا يمكنك إستخدام متغيرات او ادوات عرفت في ويب فورم في ويب فورم اخر، عليكي إستخدام session object حتى تقومي بترحيل القيم من صفحة لأخرى او إستخدام متغيرات على مستوى المشروع وليس الصفحة

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.

#4

شكرا اخ محمد على ردك , ولكن في السؤال الثاني كيف استخدم session مع datagrid وهي Component كاملة وليس متغير .

#5

جربي ان تضيفى DataGrid في ويب فورم، واربطيه مع جدول وغيري مثلا خصائص الشكل والالوان حتى تعطيه شكل معين ومن ثم ضفيه الى Session Object وبعد ذلك انتقلي الى ويب فورم اخر حيث يمكنك قراءة ال DataGrid المخزنة داخل ال Session وعرضها دون تعريف اي متغيرات جديدة

وهذا مثال

هنا زرين في الويب فورم الاول لربط Datagrid مع جدول والثاني للانتقال الى ويب فورم اخر

 
  private void Button1_Click(object sender, System.EventArgs e)
  {
 	 DataSet ds = new DataSet();
 	 oleDbDataAdapter1.Fill(ds,"Employees");
 	 
 	 DataGrid1.DataSource = ds.Tables[0];
 	 DataGrid1.DataBind();

 	 Session["MyGrid"] = DataGrid1;
 	 Session["MyTable"] = ds.Tables[0];
	}

  private void Button2_Click(object sender, System.EventArgs e)
  {
 	 Response.Redirect("webform2.aspx");
  }

وهنا الويب الفورم الاخر، حيث يتم القراءة من Session وعرضه مباشرة

  private void Page_Load(object sender, System.EventArgs e)
  { 	 
 	 this.Controls.Add((DataGrid)Session["MyGrid"]); 	 
  }

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.

#6

اشكر لك تفاعلك أخ محمد لكن الذي اريده بالظبط هو كما يحدث تماما في الهوتميل او الياهو , فمثلا لو كانا في صفحة compose ونقرنا زر inbox ينقلنا الى صفحة inbox , المشكلة عندي هي كيف استعمل هذا الكود :

this.Controls.Add((DataGrid)Session["MyGrid"]);

في برنامجي لا استطيع ان اضع هذا الكود في حدث load (لانه في هذا الحدث يوجد كود استخدمه لاغراض اخرى)

ولو وضعت هذا الكود فأنه سوف يعطيني error لعدم معرفة Session(قصدي هذا الخطاء سوف يظهر لي في اول مرة احمل الصفحة).

واسف على الاطالة

#7
اقتباس
لكن الذي اريده بالظبط هو كما يحدث تماما في الهوتميل او الياهو , فمثلا لو كانا في صفحة compose ونقرنا زر inbox ينقلنا الى صفحة inbox , المشكلة عندي هي كيف استعمل هذا الكود :

صراحة لم أفهم المقصود بالضبط !!

لكن لا يوجد مشكلة في التنقل، انا استخدمت زر لذلك، ويمكنك ان تستخدمي رابط HyperLink كما في ياهو او هوتميل

بالنسبة للخطأ الذى يظهر لعدم معرفة ال Session يمكنك وضع شرط للتأكد انه يوجد بيانات فيها

 	 if  (Session["MyGrid"]!=null)  
     this.Controls.Add((DataGrid)Session["MyGrid"]);
 	 else
    Label1.Text = "No DataGrid in session";

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.

#8

شكرا لك على هذا الاجابه , بالضبط هذا ما اقصده

هذا الموضوع مغلق.

مواضيع مشابهة