在vs2003中实现cnblogsGuestBook v2

在新手trainning中,只是给出了源代码,我这里想来给大家介绍一下我的个人完成v2的过程,希望能起到抛砖引玉的效果。

注意:只完成了一半,另一半等我明天贴上。

系统:winxp(sp2 chs)+vs2003 企业版+Access+FrameWork 1.4322

好了,下面介绍我们的实现过程:

1 摸板编辑
    在“设计”窗口从“工具箱”拖一个DATALIST控件。对DATALIST编辑“项摸板”。在“ItemTemplate”中,拖入一个html控件table。把table编辑成需要的样式(我这里是3行一列)。然后在第一和第二行各拖入一个web控件“label”。在第三行拖入一个linkbutton控件。结束摸板编辑(这步很重要,因为如果你不结束摸板编辑,你就不能进行设置datasouce,datamember)

2 数据实现
    从工具箱的“数据”中往页面拖一个“oledbconnection”,在属性窗口里设置连接字符串(与v 2不一样,它是在代码里设置connectionstring的)。 从工具箱的“数据”中往页面拖一个“oledbdataadapter”启动数据适配器向导,选刚才生成的oledbconnection,生成sql,查询分析器里选所有的列。选中刚才生成的oledbdataatapter,点击“生成数据集”,设计窗口多了一个dateset。现在点击datalist,在属性窗口的“数据”栏目里配置“databindings”,选择刚才添加的dataset。datasource为dataset,配置datamember为数据表“tbl_msg”。回到设计页面,选中datalist,点击“编辑摸板---项摸板”点中table的第一个label,配置它的databindings,在弹出的对话框中选择dataitem-->msg_title.同样设置第二行的label,只是这个label的databindings选择dataitem-->msg_content。

3 进入代码页面(default.aspx.cs),完成Page_Load

private void Page_Load(object sender, System.EventArgs e)
  
{
   
// 在此处放置用户代码以初始化页面
   oleDbDataAdapter1.Fill(dataSet11);
   
this.DataBind();
  }

4 这个时候,你已经完成了数据的读取工作了,你可以在选择“在浏览器中查看”,发现表中的留言已经在页面显示出来了。

5 删除数据的实现
    回到default.asp页面,进入设计模式。选中datalist,右键“编辑摸板---项摸板”,选中linkbutton,设置其属性:text=“删除”,
commandname=“delete”,id=“lnkbtndel”。完成之后,结束摸板编辑。进入代码页面(default.aspx.cs),完成DataList1_ItemCommand。函数如下: 
private void DataList1_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
        
{            
            
//此处对应的是在DataList中设置的btnDelete按钮,注意在页面中已经把btnDelete的CommandName属性设置为了Delete
            if (e.CommandName=="Delete")//如果传入的命令为“Delete”
            {                
                
//因为DataList上没有经过再次排序,所以此处可以用e.Item.ItemIndex来直接查找DataRow中的对应值的索引
                dataSet11.tbl_msg.Rows[e.Item.ItemIndex].Delete();//删除该行的数据
                    
                
try
                
{
                    oleDbDataAdapter1.Update(dataSet11);
//更新数据集
                }

                
catch (Exception error)
                
{
                    Response.Write(error.ToString());
//如果出错,则输出出错信息
                }

                DataList1.DataBind();
            }


            
        }

  完成之后,回到回到default.asp页面,进入设计模式。选中datalist,在属性窗口中选择,设置deletecommand=“DataList1_ItemCommand”。ok到这里你就完成了删除功能了。


继续上午未完成的部分


6  添加功能的实现
    (1)页面:拖一个thml的table到页面,添加title与conteng这两个textbox按纽,添加一个button按纽,完成后的结果如下(注意:我是加了样式表,呵呵~)
                                        
 (2)代码实现:双击“add”按纽,进入default.aspx.cs,输入下列代码:
    
private void BtnSubmit_Click(object sender, System.EventArgs e)
        
{
            
//对于类型化的数据集可以这样使用,但是要注意地是,类型化的数据集不支持继承,而非类型化的数据集因为是非强类型的,虽然支持继承,但使用上因为没有智能提示的帮助,比较麻烦。
            
//下面的代码类型化的写法
            myDs.tbl_msgRow newRow = Ds.tbl_msg.Newtbl_msgRow();//注意ds1.tbl_msg.Newtbl_msgRow()
            newRow.msg_title = txtboxTitle.Text;
            newRow.msg_content 
= txtboxContent.Text;
            newRow.msg_time 
= DateTime.Now;
            Ds.tbl_msg.Rows.Add(newRow);
                        
        
            
try
            
{
                myDa.Update(Ds);
            }

            
catch (Exception error)
            
{
                Response.Write(error.ToString());
//如果出错,则输出出错信息
            }

            
            DataList1.DataBind();
        }


       (3)“生成”项目,在浏览器中,你就可以完全看到v2的功能了


好了,到此,自己完成制作cnblogsguestbook v 2就基本完成,希望你也能顺利实现……



几点注意:1 因为点击linkbutton(即:delete链接)的时候,回出现selectIndexChanged函数,所以我是没有双击这个来实现delete函数的,而是在code页直接完成函数的,之后在这之后,回到设计页面,选中datalist后在里设置了deletecommand为“DataList1_ItemCommand”。
2。在添加功能实现的时候,要注意ds与myds的区别。他们的具体区别是什么,我说不上来(还希望高手们指点)

3。其他:我也不知道该说什么了,反正我觉得vs不太好用,老是一不注意就出错误了,或者调式没有问题,但是在浏览器里就是不能完成功能。在这次的过程中,老是出现这样的情况,希望大家注意了,呵呵~~~~


posted @ 2005-04-08 09:14  On the road....  阅读(812)  评论(4)    收藏  举报