PDA

View Full Version : nullشدن اطلاعات بعد ازedit



salmah
دوشنبه 08 اردیبهشت 1393, 00:21 صبح
من یه گرید دارم که اطلاعات کاربرا رو نمایش میده ولی یه سری از اطلاعات را که نمی خوام مدیر ببینه را visibleرا falseکردم وقتی مدیر اطلاعات را ویرایش می کنه فیلدای با visible=falseرا null می شه باید چه کار کنم

alireza.zahani
دوشنبه 08 اردیبهشت 1393, 11:20 صبح
کلا برش دار از grid

salmah
دوشنبه 08 اردیبهشت 1393, 13:47 عصر
کلا برش دار از grid
اگر حذف کنم ارور میگیره.

meisam12
دوشنبه 08 اردیبهشت 1393, 18:21 عصر
سطری را که مدیر می خواهد ویرایش کند شما ابتدا باید بر اساس PK از دیتابیس به دست آورید و فیلدهای مورد نیازتان را روی همین اطلاعات به دست آمده ویرایش کنید.

salmah
دوشنبه 08 اردیبهشت 1393, 21:53 عصر
سطری را که مدیر می خواهد ویرایش کند شما ابتدا باید بر اساس PK از دیتابیس به دست آورید و فیلدهای مورد نیازتان را روی همین اطلاعات به دست آمده ویرایش کنید.
بله روش همینه ولی مشکل من این نیست چون
یه سری از اطلاعات را نیاز نیست مدیر ببینه مثلا رمز عبور کاربر

meisam12
دوشنبه 08 اردیبهشت 1393, 22:06 عصر
خوب شما کل اطلاعات را به گرید بدید ولی فقط فیلدهای مورد نظر را به مدیر نمایش بدهید.

salmah
دوشنبه 08 اردیبهشت 1393, 23:23 عصر
خوب شما کل اطلاعات را به گرید بدید ولی فقط فیلدهای مورد نظر را به مدیر نمایش بدهید. یه کم توضیح بدید
چه جوری

meisam12
سه شنبه 09 اردیبهشت 1393, 00:20 صبح
فرض میکنیم شما یک گرید به نام grdUsers دارید که اطلاعات کاربران را به مدیر سایت نشان می دهد اما شما نمی خواهید مثلاً رمز عبور را نشان دهید.

1 - ابتدا یک کوئری می نویسیم که اطلاعات کاربران را به ما بدهد.(در رویداد Page_Load)

grdUsers.DataSource= Context.Users.Select(r=>r).ToList();
grdUsers.DataBind();


2- در MarkUp


<asp:GridView ID="grdUsers" runat="server" AutoGenerateColumn="false" onrowcommand="grdUsers_RowCommand">
<Columns>
<asp:BoundField HeaderText="نام کاربری" DataField="UserName" />
<asp:BoundField HeaderText="نام" DataField="UserName" />
<asp:BoundField HeaderText="نام خانوادگی" DataField="UserName" />
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lbEdit" runat="server" CommandArgument='<%# Eval("UserID") %>'
CommandName="DoEdit">ویرایش</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>


3- در code-behind این صفحه رویداد grdUsers_RowCommand را تعریف می کنیم. می گوییم اگر روی دکمه ویرایش کلیک کرد textbox های مربوط به سطر انتخاب شده پر شود و بعد برود به view مربوط به ویرایش اطلاعات.


protected void grdUsers_RowCommand(object sender, GridViewCommandEventArgs e)
{
switch (e.CommandName)
{
case "DoEdit":
{
ViewState["FormMode"] = "Edit";
ViewState["UserID"] = Convert.ToInt32(e.CommandArgument);
LoadForm();
mvUsers.SetActiveView(vwSubmitUsers);
break;
}
}
}


4- کد update مربوط به دکمه ویرایش را می نویسیم


protected void btnSave_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
int userID = Convert.ToInt32(ViewState["UserID"]);

EntityObject user = new Persist.Model.User()
{
Username = txtUsername.Text
Phone = txtPhone.Text,
Email = txtEmail.Text,
UserID = userID,
Context.Users.AddObject(user);
Context.SaveChanges();
};
User tmp=Context.Users.Where(r=>r.UserID==userID).SingleOrDefault();
user.Password=tmp.Password;

grdUsers.DataBind();
mvUsers.SetActiveView(vwUsers);
break;
}
}
}