PDA

View Full Version : بررسی کد Page_Load برای بایند شدن گریدویو



imanasp
شنبه 19 دی 1388, 22:21 عصر
دوستان سلام
من تو برنامم 4 تا متد برای بایند شدن گرید ویو دارم که هر کدوم بسته به شرط بررسی شده سلکتهای متفاوتی روی جدول میزنند
من تو رویداد لود صفحه کد زیر رو برای بایند شدن گرید ویو نوشتم منتهی مثلا زمانی که میخام اطلاعات گرید ویو رو آپدیت کنم عبارتی که توی EmptyDataText نوشتم نمایش داده میشه که خوب اشتباست! چون داده وجود داره و قراره که آپدیت بشه چون صفحه لود میشه اطلاعات گرید برای آپدیت شدن دوباره باید بایند بشه که خوب کد اون رو هم نوشتم منتهی نمیدونم کجای کارم مشکل داره


if (!Page.IsPostBack)
{

if (sName == "همه استان ها" && bName == "همه رشته ها")
{
AllStateAllBranch();
}

else if (sName == "همه استان ها" && bName != "همه رشته ها")
{
AllStateBranch(bName);
}
else if (sName != "همه استان ها" && bName == "همه رشته ها")
{
StateAllBranch(sName);
}
else if (sName != "همه استان ها" && bName != "همه رشته ها")
{
StateBranch(sName, bName);
}
else
{

}
}اینم کد مربوط به :RowUpdating


protected void gdwThought_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
e.Cancel = true;
TextBox txtEditAnswer = (TextBox)gdwThought.Rows[e.RowIndex].FindControl("txtEditAnswer");
Label lblId = (Label)gdwThought.Rows[e.RowIndex].FindControl("Label31");



SqlCommand cmd = new SqlCommand(
"UPDATE tbl_Question SET qText = @qText WHERE (qId = @qId)",
cnn);

cmd.Parameters.AddWithValue("@qText", txtEditAnswer.Text);
cmd.Parameters.AddWithValue("@qId", lblId.Text);
cnn.Open();
if (cmd.ExecuteNonQuery() == 1)
{
gdwThought.EditIndex = -1;

if (sName == "همه استان ها" && bName == "همه رشته ها")
{
AllStateAllBranch();
}

else if (sName == "همه استان ها" && bName != "همه رشته ها")
{
AllStateBranch(bName);
}
else if (sName != "همه استان ها" && bName == "همه رشته ها")
{
StateAllBranch(sName);
}
else if (sName != "همه استان ها" && bName != "همه رشته ها")
{
StateBranch(sName, bName);
}
else
{

}

mehdi.mousavi
چهارشنبه 23 دی 1388, 14:40 عصر
دوستان سلام من تو برنامم 4 تا متد برای بایند شدن گرید ویو دارم که هر کدوم بسته به شرط بررسی شده سلکتهای متفاوتی روی جدول میزنند من تو رویداد لود صفحه کد زیر رو برای بایند شدن گرید ویو نوشتم منتهی مثلا زمانی که میخام اطلاعات گرید ویو رو آپدیت کنم عبارتی که توی EmptyDataText نوشتم نمایش داده میشه که خوب اشتباست! چون داده وجود داره و قراره که آپدیت بشه چون صفحه لود میشه اطلاعات گرید برای آپدیت شدن دوباره باید بایند بشه که خوب کد اون رو هم نوشتم منتهی نمیدونم کجای کارم مشکل داره

سلام.
این روش مطلقا صحیح نیست. شما Business Rule ها، کد UI و ... رو همه رو با هم ترکیب کرده اید و از توش این معجون رو درآوردید. نیازی به چهار متود نیست. کافیه یک متود داشته باشید، یکبار تو فایل ASPX بصورت Declarative گرید خودتون رو به DataSource مورد نظرتون Bind کنید، و بسته به پارامترهای ورودی تابع نوشته شده در یک Adapter، متود مورد نظر از DAL رو فراخوانی کرده و داده ها رو از بانک دریافت کنید. برای آشنایی با نحوه صحیح کار کردن با GridView لطفا به کتاب Pro ASP.NET 3.5 in C# 2008 مراجعه کنید.

موفق باشید.