这个控件是用来显示书的详细信息的。
1.先查询书的所有信息显示出来。
2.添加ItemInserting事件激发时,书的类别和书的出版社的值对象要重新设置,
///类别
Category cate = new Category();
DropDownList dro = (this.DetailsView1.FindControl("DropDownList1"))as DropDownList;
cate.Name = dro.SelectedItem.Text;
cate.Id = Convert.ToInt32(dro.SelectedValue);
BookManager.Cate = cate;
///出版社
Publisher pub = new Publisher();
DropDownList dropub = (this.DetailsView1.FindControl("DropDownList2")) as DropDownList;
pub.Id =Convert.ToInt32(dropub.SelectedItem.Value);
pub.Name = dropub.SelectedItem.Text;
BookManager.Pub = pub;
传递给BLL.BookManager的InsertBooks(Book books)方法。
/// <summary>
/// 注意字段和属性都为静态
/// </summary>
private static Category cate;
public static Category Cate
{
set { BookManager.cate= value; }
}
private static Publisher pub;
public static Publisher Pub
{
set { BookManager.pub = value; }
}
3.更新ItemUpdating事件激发时,书的类别和书的出版社的值对象要重新设置。跟上面方法一样。
4.删除的时候如果涉及到图片,得在ItemDeleting事件中先删除图片
Image image = (DetailsView1.FindControl("Image1")) as Image;
File.Delete(image.ImageUrl);
5.插入书的信息以后在来把图片上传到服务器上,在Inserted事件里编写。
if (e.Exception == null)
{
string Isbn = ((DetailsView1.FindControl("txtIsbninsert")) as TextBox).Text;
string path = Server.MapPath("~/BookCovers/" + Isbn + ".jpg");
FileUpload fileupload = (DetailsView1.FindControl("FileUpload2")) as FileUpload;
if (fileupload != null && fileupload.HasFile ==true && fileupload.FileName!=null)
{
fileupload.SaveAs(path);
Response.Write("<script>alert('图片添加成功!')</script>");
}
}
else
{
Response.Write("<script>alert('图片添加失败!')</script>");
}
6.更新书的信息以后在来把服务器上的图片更新掉。在Update事件里编写。与以上一样。
谈谈authentication的用法。
在web.config.文件里编写一下。
<!--
通过 <authentication> 节可以配置 ASP.NET 使用的
安全身份验证模式,
以标识传入的用户。
-->
<authentication mode="Forms">
<forms defaultUrl="indexView.aspx" loginUrl="Login.aspx">
</forms>
</authentication>
然后用户登录成功后这样设置
FormsAuthentication.RedirectFromLoginPage(txtName.Text.Trim(),false);
这是使用Forms身份验证cookie的指定路径。可将经过身份验证的用户重定向最初请求的URL或默认的URL.
在GridView 里删除的另一种方法。
<asp:TemplateField HeaderText="删除">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:ImageButton ID="ImageButton1" runat="server" CommandName="del" CommandArgument='<%# Eval("TypeID")%>' ImageUrl="~/images/delete.gif" OnClientClick="return confirm('你是否确定删除');" />
</ItemTemplate>
</asp:TemplateField>
然后在删除的事件中编写
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "del")
{
HotelManager.Model.RoomType type = new HotelManager.Model.RoomType();
type.TypeID = Convert.ToInt32(e.CommandArgument.ToString());
RoomTypeBLL roomtypebll = new RoomTypeBLL();
bool bo = roomtypebll.DeleteRoomType(type);
if (bo)
{
Response.Write("<script>alert('删除成功!')</script>");
this.DataBind();
}
else
{
Response.Write("<script>alert('删除失败!')</script>");
}
}
}
这样就可成功。