源代码:13033480群共享
一、进入插入模板
1、protectedvoid fvwItemDetails_ModeChanging(object sender,FormViewModeEventArgs
e)函数中添加代码:
case FormViewMode.Insert:
this.fvwItemDetails.ChangeMode(FormViewMode.Insert);
break;
2、此时,可进入插入模板,不过,不显示任何信息,也不能够获得下拉列表框的句柄,须添加PreRender()消息响应函数,在这个消息响应函数中添加填充下拉列表框的代码:
protected
void fvwItemDetails_PreRender(object sender,EventArgs e)
{
if (fvwItemDetails.CurrentMode ==FormViewMode.Insert)
{
DropDownList ddl = (DropDownList)fvwItemDetails.FindControl("ddlCategories");
if (ddl !=
null)
{
BindDropDownList(ddl);
}
}
}
二、修改BindDropDownList()函数
private void BindDropDownList(DropDownList ddl)
{
ddl.DataSource = new Category().GetCategories();
ddl.DataTextField = "Name";
ddl.DataValueField = "CategoryId";
ddl.DataBind();
if (ViewState["SelectedCategoryId"] != null)
{
ListItem selectedItem = ddl.Items.FindByValue(ViewState["SelectedCategoryId"].ToString());
if (selectedItem != null)
selectedItem.Selected = true;
}
else
{
string selectcategory = Request.QueryString["categoryId"].ToString();
ListItem selectedItem = ddl.Items.FindByValue(selectcategory);
if (selectedItem != null)
selectedItem.Selected = true;
}
}
三、添加消息响应函数fvwItemDetails_ItemInserting()
protected void fvwItemDetails_ItemInserting(object sender, FormViewInsertEventArgs e)
{
ItemDetails itemdetails = new ItemDetails();
if (ViewState["ImageUrl"] != null)
{
itemdetails.Image = ViewState["ImageUrl"].ToString();
}
if (ViewState["SelectedCategoryId"] != null)
{
DropDownList ddl = (DropDownList)fvwItemDetails.FindControl("ddlCategories");
itemdetails.CategoryId = ViewState["SelectedCategoryId"].ToString();
}
TextBox txtname = (TextBox)fvwItemDetails.FindControl("txtName");
itemdetails.Name = txtname.Text;
TextBox txtPrice = (TextBox)fvwItemDetails.FindControl("txtPrice");
itemdetails.Price = decimal.Parse(txtPrice.Text);
TextBox txtDescn = (TextBox)fvwItemDetails.FindControl("txtDescn");
itemdetails.Descn = txtDescn.Text;
TextBox txtSupplyTime = (TextBox)fvwItemDetails.FindControl("txtSupplyTime");
itemdetails.SupplyTime = txtSupplyTime.Text;
TextBox txtSupplyDate = (TextBox)fvwItemDetails.FindControl("txtSupplyDate");
itemdetails.SupplyDate = txtSupplyDate.Text;
TextBox txtSupplyArea = (TextBox)fvwItemDetails.FindControl("txtSupplyArea");
itemdetails.SupplyArea = txtSupplyArea.Text;
Item item = new Item();
item.InsertItem(itemdetails);
fvwItemDetails.ChangeMode(FormViewMode.ReadOnly);
BindFormView();
ViewState["ImageUrl"] = null;
ViewState["SelectedCategoryId"] = null;
}
四、在数据访问层DAL的Item.cs类中,添加InsertItem(ItemDetails item)函数
public void InsertItem(ItemDetails item)
{
SqlParameter[] parms;
parms = new SqlParameter[]
{
new SqlParameter("@ItemId",SqlDbType.Int),
new SqlParameter("@CategoryId",SqlDbType.VarChar,20),
new SqlParameter("@Name",SqlDbType.VarChar,80),
new SqlParameter("@Price",SqlDbType.Decimal,10),
new SqlParameter("@Image",SqlDbType.VarChar,80),
new SqlParameter("@Descn",SqlDbType.VarChar,80),
new SqlParameter("@SupplyTime",SqlDbType.VarChar,80),
new SqlParameter("@SupplyDate",SqlDbType.VarChar,80),
new SqlParameter("@SupplyArea",SqlDbType.VarChar,80)
};
parms[0].Value = item.ItemId;
parms[1].Value = item.CategoryId;
parms[2].Value = item.Name;
parms[3].Value = item.Price;
parms[4].Value = item.Image;
parms[5].Value = item.Descn;
parms[6].Value = item.SupplyTime;
parms[7].Value = item.SupplyDate;
parms[8].Value = item.SupplyArea;
SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_INSERT_ITEM, parms);
}
五、FormView删除详细信息比较简单,不过,步骤和前面是一样的。
1、添加消息响应函数
protected void fvwItemDetails_ItemDeleting(object sender, FormViewDeleteEventArgs e)
{
ItemDetails itemdetails = new ItemDetails();
itemdetails.ItemId = int.Parse(Request.QueryString["itemId"]);
Item item = new Item();
item.DeleteItem(itemdetails);
Image img = (Image)fvwItemDetails.FindControl("imgItem");
File.Delete(Server.MapPath(img.ImageUrl));
BindFormView();
}
在删除数据库数据的同时,删除了服务器端文件。
2、在数据访问层DAL的Item.cs类中,添加DeleteItem(ItemDetails item)函数
public void DeleteItem(ItemDetails item)
{
SqlParameter[] parms;
parms = new SqlParameter[]
{
new SqlParameter("@ItemId",SqlDbType.Int)
};
parms[0].Value = item.ItemId;
SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_DELETE_ITEM, parms);
}
六、浏览Default.aspx,查看运行结果。
分享到:
相关推荐
ASP.NET2.0中编程实现GridView与FormView的主-详细视图
当使用GridView、DetailsView或FormView控件的内建插入、编辑或删除特征时,在用户添加一条新记录或更新/删除一条现在记录的过程中发生了多个步骤。正如我们之前一节里所讨论的,在GridView中编辑一行时,保存...
详细的介绍了fromview的使用方法,加上本人实例
FormView控件的运用
formview.css
这是用vs建的一个例子,关于GridView控件和FormView控件的。
GridView_+_FormView_+_SqlDataSource
网站上自己下载的代码 运行了一遍 有一些收获 有兴趣的可以自己下载看看 免费下载的哦
formview分页上一页下一页总页数当前页数首页末页
一个基于FormView的扩展类,允许控件以不同形式随窗体变化
这个是Windows FormView的程序,实现基本的FormView功能。
控制了窗口的大小当拖动窗口缩小的添加的空间大小时,窗口不会再缩小了,实现了formview dialog对话框的布局,还有就是点击菜单项切换界面,
FormView 视图 无法响应Ctrl+C等键盘消息解决办法 仅4行代码 无需对单个Editbox控件修改,非常好用 仅需2资源分
论坛上有很多人使用对话框的scrollBar控制对话框中一部分的卷动,实现过程复杂而且逻辑混乱。这个例子里,直接在对话框中创建一个CFormView子窗口,子窗口自己管理卷动,各负其责,条理清晰
listbox,datasousce 应用以及
基于FormView的多语言界面程序,通过定义多种语言的lng文件,即可轻松实现语言的切换
GridView与FormView结合使用,实现增删改查,第一种方法,用数据源绑定完成!第二种方法,全部用代码完成!
本项目使用Linq技术+三层结构 ASP.NET DIV+CSS ...高级功能:真分页、批量删除、光棒、购物车(在线购物和发货) 小弟用了一周时间完成了网上书店的项目,完成之后感觉收获很大,分享给大家学习学习!
本项目使用Linq技术+三层结构 ASP.NET DIV+CSS ...高级功能:真分页、批量删除、光棒、购物车(在线购物和发货) 小弟用了一周时间完成了网上书店的项目,完成之后感觉收获很大,分享给大家学习学习!