PDA

View Full Version : مقدار دهی به لیبل موجود در مسترپیچ



karimi84
شنبه 18 دی 1389, 14:27 عصر
برای لاگین کردن نام کاربر و مشخصات ان در بالای مسترپیچ قرارد دارد وقتی کاربری در صفحه است و می خواهد لاگین کند در صورت درست بودن نام کاربری اسم ان کاربر در بالای صفحه می بایست قرار بگیرد (مانند همین سایت) برای انجام این کار چکار باید انجام بدهم (سرچ کردم به نتیجهای نرسیدم )
وقتی برنامه را تریس می کنم در صفحه مستر پیچ lable مربوطه مقدار دارد ولی وقتی وارد صفحه aspx می شود فیلد فوق را خالی نمایش می دهد .
لطفا راهنمائی کنید

mehrdad85
شنبه 18 دی 1389, 15:13 عصر
برای دسترسی به کنترل هایی داخل صفحه مستر میتونی از کد زیر استفاده کنی
منو در جریان نتیجه کارت قرار بده
اگه جواب نداد بگو تا راه دیگه ای را تست کنیم با هم


Control lblMyLabel = Master.FindControl("Label1");
if(lblMyLabel != null)
{
((Label) lblMyLabel).Text = "master page controls";
}

karimi84
شنبه 18 دی 1389, 15:28 عصر
من این کار رو کردم ولی نتیجه نگرفتم
کد مربوط به مسترپیچ :
protected void LoginButton_Click(object sender, EventArgs e)
{

if (Page.IsValid)

{
string connString = System.Configuration.ConfigurationManager.Connecti onStrings["HelpDeskConnectionString"].ConnectionString;

SqlConnection Conn = new SqlConnection(connString);
SqlCommand cmd = (SqlCommand)Conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_select_log";
cmd.Parameters.Add("@User", txt_UserName.Text);
cmd.Parameters.Add("@password", txt_Password.Text);


SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
//MasterPageLabel = ds.Tables[0].Rows[0]["user"].ToString();
Session["username"] = ds.Tables[0].Rows[0]["user"].ToString();
Page page = HttpContext.Current.CurrentHandler as Page;
FailureText.EnableViewState = false;
txtuser.Text = txt_UserName.Text;
Response.Redirect(string.Format(Request.UrlReferre r.LocalPath.ToString()));
}
else
{
FailureText.EnableViewState = true;
FailureText.Text = "نام کاربری یا کلمه عبور اشتباه است";
}


}
}
در نتیهایت در این بخش مقدار txtuser.Text را مقدار دهی میکنم ولی در صفحه Aspx که می خواهم مقدار فیلد مذکور را چک کنم مقدار خالی نمایش می دهد

karimi84
شنبه 18 دی 1389, 15:30 عصر
من این کار رو کردم ولی نتیجه نگرفتم
کد مربوط به مسترپیچ :
protected void LoginButton_Click(object sender, EventArgs e)
{

if (Page.IsValid)

{
string connString = System.Configuration.ConfigurationManager.Connecti onStrings["HelpDeskConnectionString"].ConnectionString;

SqlConnection Conn = new SqlConnection(connString);
SqlCommand cmd = (SqlCommand)Conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_select_log";
cmd.Parameters.Add("@User", txt_UserName.Text);
cmd.Parameters.Add("@password", txt_Password.Text);


SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
//MasterPageLabel = ds.Tables[0].Rows[0]["user"].ToString();
Session["username"] = ds.Tables[0].Rows[0]["user"].ToString();
Page page = HttpContext.Current.CurrentHandler as Page;
FailureText.EnableViewState = false;
txtuser.Text = txt_UserName.Text;
Response.Redirect(string.Format(Request.UrlReferre r.LocalPath.ToString()));
}
else
{
FailureText.EnableViewState = true;
FailureText.Text = "نام کاربری یا کلمه عبور اشتباه است";
}


}
}
در نتیهایت در این بخش مقدار txtuser.Text را مقدار دهی میکنم ولی در صفحه Aspx که می خواهم مقدار فیلد مذکور را چک کنم مقدار خالی نمایش می دهد

mehrdad85
یک شنبه 19 دی 1389, 14:36 عصر
مطمئنی که visible هست؟
چون چیزی که مشخصه اینه که label را میشناسه ولی به اون مقدار نمیده و شاید اصلا اونو نمایش نمیده
اگه بهش دسترسی نداشته باشه پیام خطا میده

اینو چک کن شاید اشکال از اینجا باشه الان راستش چیز دیگه ای به ذهنم نمیرسه

karimi84
یک شنبه 19 دی 1389, 14:48 عصر
خدا خیرتون بده حداقل یکی پیدا شد جواب سوال من و بده
مجبور شدم از SESSION استفاده کنم بدین شکل که در مسترپیچ بعد از چک کردن مقدار صحیح بود نام کاربر ، نام کاربر را در SESSION قرار داده بعد در صفحه Aspx به لیبل موجود در مسترپیچ با استفاده ازSESSION مقدار دهی کردم که این روش به نظرم خیلی درست نیست ؟ به هر حال جواب گرفتم
ولی میخواهم راه درست رو انتخاب کنم تو خود مسترپیچ به LABLE خود مسترپیچ مقدار بدم ؟

Javad_Darvish_Amiry
سه شنبه 28 دی 1389, 16:20 عصر
دوست عزیز، یه سوال: چرا از ممبرشیپ خود ASP.NET استفاده نمیکنید؟ کدی که شما بالا نوشتی (البته کاش پست ها رو ویرایش کنی و کد ها رو تو تگ مربوط به کد بذاری، اینجوری خیلی خواناییش کمه) خیلی اشکال داره و امن هم نیست. اگه دنبال مسیر درست میگردید، از Membership خود دات نت استفاده کنید و کنترل هایی هم که براتون فراهم شده، عالی و کامل هستن (در این حد که برای درک موضوع کاربران بخواین با اونا شروع کنین، اما:) بعدش هم وقتی کاملا از ریزه کاری ها سر در آوردید، میتونید اقدام کنید برای نوشتن کدهای شخصی خودتون (پرووایدر، لوگین، نشست، لوگ اوت، پروفایل و غیره). فعلا پیشنهاد میکنم برید سراغ همون چیزایی که دات نت براتون مهیا کرده و دوم این که فقط ازشون استفاده نکنید، بلکه ببینید چطوری کار میکنن. (سورس قسمت اعظمی از دات نت از جمله ممبرشیپ پرووایدر منتشر شده و خیلی کمکتون میکنه). پاینده باشد.