PDA

View Full Version : سوال: نمایش ندادن GridView بعد از کلیک بر روی Edit؟! لطفا کمک کنید!



Parham.D
شنبه 28 آذر 1388, 10:38 صبح
سلام دوستان و اساتید گرام.

سوال اصلی: زمانی که بر روی Edit از یک ردیف در GridView کلیک میکنم، صفحه دوباره Load میشه، اما GridView را نمایش نمیدهد. چرا اینطور هست؟ مشکل از کجاست؟

توضیحات: به صورت Runtime یک GridView ایجاد و داده ‏ها را با آن نمایش میدم. Edit, Delete را هم فعال کردم. تا اینجای کار مشکلی نیست. یک قطعه کد هم با جستجو در Google پیدا کردم برای رویداد RowEditing و اضافه کردم. بعد از زدن دکمه Edit و بعد از Load شدن دوباره صفحه GridView نمایش داده نمیشه.

کد صفحه برای بررسی بیشتر:




public partial class Admin : System.Web.UI.Page
{
SqlConnection Connection = new SqlConnection(WebConfigurationManager.ConnectionSt rings["ConnectionString"].ConnectionString);
SqlDataAdapter SDA = new SqlDataAdapter();
DataSet DS = new DataSet();
GridView UserGridView = new GridView();

string[] FieldItemsDataField = new string[4] { "User_Name", "User_Password", "User_Type", "User_Display",};
string[] FieldItemsHeaderText = new string[4] { "نام کاربر", "رمز عبور", "نوع کاربر", "نام نمایشی" };

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
CreateUserGridView();
}
}

protected void RadioButtonList_SelectedIndexChanged(object sender, EventArgs e)
{
if (RadioButtonList.SelectedIndex == 0)
{
UserGridView.AutoGenerateColumns = false;
UserGridView.AutoGenerateDeleteButton = true;
UserGridView.AutoGenerateEditButton = true;
UserGridView.AutoGenerateSelectButton = true;
UserGridView.ID = "UserGridView";
UserGridView.Width = Unit.Percentage(100);
UserGridView.EditIndex = -1;
UserGridView.RowEditing += new GridViewEditEventHandler(UserGridView_RowEditing);

Panel.Controls.Add(UserGridView);

CreateUserGridView();
}
}

protected void UserGridView_RowEditing(object sender, GridViewEditEventArgs e)
{
UserGridView.EditIndex = e.NewEditIndex;
CreateUserGridView();
}

private void CreateUserGridView()
{
for (int i = 0; i < 4; i++)
{
BoundField Field = new BoundField();

Field.DataField = FieldItemsDataField[i];
Field.HeaderText = FieldItemsHeaderText[i];

DataControlField Column = Field;

UserGridView.Columns.Add(Column);
}

SDA.SelectCommand = new SqlCommand();
SDA.SelectCommand.Connection = Connection;
SDA.SelectCommand.CommandText = "SELECT User_Name, User_Password, User_Type, User_Display FROM Users";
SDA.SelectCommand.CommandType = CommandType.Text;

//Fill the dataSet with employee table
try
{
Connection.Open();

SDA.Fill(DS, "Users");

Connection.Close();
}
catch (Exception)
{


}

UserGridView.DataSource = DS;
UserGridView.DataMember = "Users";
UserGridView.DataBind();

SDA = null;
Connection = null;
}
}

e-arasteh
شنبه 28 آذر 1388, 11:32 صبح
باید بعد از postback دوباره grid رو bind کنی

Parham.D
شنبه 28 آذر 1388, 11:57 صبح
درست نشد. احتیاج به راهنمایی بیشتر و دقیق دارم. کد را نگاه کنید! جاهای که فکر میکردم لازم هست Bind کردم. اگر در Page_Load بدون هیچ شرطی Bind کنم خطای NullReferenceException میده. لطفا بنده را راهنمایی کنید.

e-arasteh
شنبه 28 آذر 1388, 12:19 عصر
درست نشد. احتیاج به راهنمایی بیشتر و دقیق دارم. کد را نگاه کنید! جاهای که فکر میکردم لازم هست Bind کردم. اگر در Page_Load بدون هیچ شرطی Bind کنم خطای NullReferenceException میده. لطفا بنده را راهنمایی کنید.
خوب برادر خودت که داری میگی پس بعد از refresh یه سری از آرگومان هایی که میخواد null هستن در نتیجه grid رو نشون نمیده.

Parham.D
شنبه 28 آذر 1388, 12:38 عصر
خوب برادر عزیز کجا رو دست کاری کنم؟!! :افسرده: من Web App را به اندازه Win App نمیدانم. وقتی RadioButton را انتخاب میکنم به خوبی GridView را نمایش میده، ولی وقتی روی Edit آن GridView کلیک میکنم دیگه نمایش نمیده. چرا در یک رویداد درست کار میکنه و در یک رویداد دیگه نه؟؟؟؟؟ فرض کن این کد شماست!! چطور درستش میکنی؟ . . .

ممنون از توجه شما . . .

Parham.D
یک شنبه 29 آذر 1388, 09:26 صبح
اساسا رویداد RowEditing اجرا نمیشه! این مسئله کمکی به پیدا کردن راه حل میکنه؟ لطفا کمک کنید، همچنان در انتظار هستم. هیچ کس با این مشکل برخورد نکرده؟!!