设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123下一页
返回列表 发新帖
查看: 4406|回复: 20
打印 上一主题 下一主题

[Access本身] 【教程】从Access到Asp.net(七)

[复制链接]
跳转到指定楼层
1#
发表于 2006-8-13 10:28:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
昨天我们添加了一个框架网页:Admin_mat.htm,今天我们继续在基础上设计,做出aceess里frm_admin_mat的效果。

       首先,我们在资源管理-----点击右键-----添加web窗体----添加一个web窗体,名称叫Admin_mat.aspx,注意:昨天的后缀名是htm,今天的是aspx

       点击工具箱的html抽屉,里面有很多控件,大多数与web控件相同,找到tabel,单击后在窗体上画一个控件,这是个三行三列的表格,通过右键——插入和删除,把它做成一个5行1列的表格



[此贴子已经被作者于2006-8-13 2:29:06编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

本帖被以下淘专辑推荐:

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖1 订阅订阅
2#
 楼主| 发表于 2006-8-13 10:32:00 | 只看该作者
【<A>标记】
这里要用到一个控件叫“赋值超链接”的Html控件,英文名是Anchor,也许是我太笨了,我没有再控件工具箱中找到他,他的写法是
<A></A>中间是显示出来的文字,有下列一些属性:
Id=控件的名称
Href=URL地址
Target=链接要在哪一个框架打开
Name=目的书签的名称
Onserverclick=事件程序名称
Title=鼠标移动上去的小提示
由于没有发现控件,我们只好到html视图下编辑,在表格的<td></td>中间插入<A></A>然后显示“<A> 属性页”对话框,请先单击“设计”视图图面上的链接文本;或者在“HTML”视图中将插入点放在所需的 <A> 元素内,然后从“视图”菜单中选择“属性页”对话框。
编辑以前的html:
    <TABLE id="Table1" style="Z-INDEX: 101; LEFT: 16px; WIDTH: 232px; POSITION: absolute; TOP: 32px; HEIGHT: 160px"
     cellSpacing="1" cellPadding="1" width="300" border="1">
     <TR>
      <TD></TD>
      <TD></TD>
      <TD></TD>
     </TR>
     <TR>
      <TD></TD>
      <TD></TD>
      <TD></TD>
     </TR>
     <TR>
      <TD></TD>
      <TD></TD>
      <TD></TD>
     </TR>
    </TABLE>
编辑以后的html:
    <TABLE id="Table1" style="Z-INDEX: 101; LEFT: 16px; POSITION: absolute; TOP: 24px; HEIGHT: 216px"
     cellSpacing="8" cellPadding="8" width="144" border="0" height="216" align="center">
     <TR>
      <TD style="HEIGHT: 37px" bgColor="#ffccff" colSpan="1" rowSpan="1"><A href="pkinds_mat.aspx" target="right">商品类别管理</A></TD>
     </TR>
     <TR>
      <TD bgColor="#ffccff" colSpan="1" rowSpan="1"><A href="pkinds_mat.aspx"  target="right">商品信息管理</A></TD>
     </TR>
     <TR>
      <TD bgColor="#ffccff" colSpan="1" rowSpan="1"><A href="pinfo_add.aspx" target="right">添加新商品</A></TD>
     </TR>
     <TR>
      <TD bgColor="#ffccff" colSpan="1" rowSpan="1"><A href="salelist_mat.aspx" target="right">销售订单管理</A></TD>
     </TR>
     <TR>
      <TD bgColor="#ffccff" colSpan="1" rowSpan="1"><A href="admininfo_mat.aspx" target="right">系统用户管理</A>
      </TD>
     </TR>
    </TABLE>
这个是左边的那一排按钮,现在新建右面的界面:新建5个web窗体:命名为:"pkinds_mat.aspx","pkinds_mat.aspx","pinfo_add.aspx","salelist_mat.aspx","admininfo_mat.aspx",分别用<A>做好连接
回到框架页面,填写框架左边的链接地址:(下面第二行)
<frameset cols="22%,78%" border="0" frameSpacing="0" frameBorder="0">
<frame name="left" src="admin_mat.aspx">
<frame name="right" src="">
<noframes>

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
3#
 楼主| 发表于 2006-8-13 10:34:00 | 只看该作者
【DateGrid】
这个控件可以说是asp.net里面最主要的数据控件了:先说一个数据加载办法。
1、 点击工具箱组件层,从工具箱中拖入一个dategrid控件,id默认值为datagrid1。
2、 点击工具箱数据层,拖动一个oledbdataadapter对象到窗体里来,此时会启动数据配置向导
3、 在【提供程序】选择Microsoft Jet 4.0,点击下一步
4、 选择数据库,点击测试连接
5、 点击下一步,使用SQL语句
6、 下一步,使用查询生成器——这里和access差不多,最后生成SELECT tab_pkinds * FROM tab_pkinds
7、 下一步,完成,这时窗体下方会有两个图标,OleDbAdapter1, 和OleDbConnection1
8、 点击OleDbAdapter1的属性,下面有生成数据集命令,点击它就会打开“生成数据集”窗口。确定后生成一个叫Dataset11的对象
9、 点击DataGrid1,右键——打开属性生成器,设定数据源。
10、 点击DataGrid1,右键——打开套用自动格式,选择一个格式式样。
11、 点击属性生成器的“列”,打开列设置,添加两个数据列:id,pkinds,设置页眉文本。展开按钮列,添加两个按钮:“删除按钮”和“编辑按钮”
12、 点击分页,设定每页显示的数据条目,以及翻页按钮的样式
13、 点击格式,设置本表格控件的格式,我这里只是设置了一下字符大小为X-small,其实可以做很细致的设定。
14、 双击窗体空白处,打开vb窗体,在Page_Load事件中添加下列代码

Me.OleDbDataAdapter1.Fill(DataSet11)
DataGrid1.DataBind()
15、 在资源管理器中办admin_amt.htm设为起始页
16、 点击工具栏上方的运行按钮,就可以把这三个页面统一运行了,在运行后点击点击商品类别管理,就可以看到右边出现了类别表格。









[此贴子已经被作者于2006-8-13 2:43:45编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
4#
发表于 2006-8-13 16:09:00 | 只看该作者
[em17][em09][em06]
5#
发表于 2006-8-18 04:01:00 | 只看该作者


[此贴子已经被作者于2006-8-17 20:01:45编辑过]

6#
发表于 2006-8-31 06:48:00 | 只看该作者
第七章的种类更新出错不知为啥:







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
7#
 楼主| 发表于 2006-8-31 10:36:00 | 只看该作者
原因是你的第一个单元格在编辑状态下使用了文本框,这样一来用e.Item.cells(0).text就无法获得它的值,比较第二个单元格的用法就知道了,所以要把第一列的只读属性设为是。
8#
发表于 2006-9-1 04:56:00 | 只看该作者
谢卸!

我将id列改为只读,已无错误提示,可没有更新哟,又错在哪了






删除为啥要点击两次才有效?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
9#
 楼主| 发表于 2006-9-1 11:16:00 | 只看该作者
你在页面加载事件中的数据加载要写在not ispostback情况下:

if not ispostback then

BindGrid()  '数据加载函数

end if

否则数据是来自服务器而非客户端,这样一来在客户端做的更改当然就无效了。

10#
发表于 2006-9-3 06:16:00 | 只看该作者
我照抄的,帮看下错在哪:

Public Class pkinds_mad
    Inherits System.Web.UI.Page
    Dim myconstr As String = ConfigurationSettings.AppSettings("constr") & Server.MapPath(".") & ConfigurationSettings.AppSettings("dbs")
    Protected WithEvents Button2 As System.Web.UI.WebControls.Button
    Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
    Protected WithEvents DropDownList1 As System.Web.UI.WebControls.DropDownList
    Protected WithEvents OleDbSelectCommand1 As System.Data.OleDb.OleDbCommand
    Protected WithEvents OleDbInsertCommand1 As System.Data.OleDb.OleDbCommand
    Protected WithEvents OleDbUpdateCommand1 As System.Data.OleDb.OleDbCommand
    Protected WithEvents OleDbDeleteCommand1 As System.Data.OleDb.OleDbCommand
    Protected WithEvents OleDbConnection1 As System.Data.OleDb.OleDbConnection
    Protected WithEvents DataSet11 As minishop1.DataSet1
    Dim mycon As OleDb.OleDbConnection = New OleDb.OleDbConnection(myconstr)

End Sub

'为datagrid绑定数据的过程

Sub BindGrid()
        Dim mycmd As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter("select id,pkinds from tab_pkinds", mycon)
               Dim dt As Data.DataSet = New Data.DataSet
        mycmd.Fill(dt)
        Dim dv As Data.DataView = New Data.DataView(dt.Tables(0))
        DataGrid1.DataSource = dv
        DataGrid1.DataBind()
    End Sub



Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '在此处放置初始化页的用户代码
        Me.OleDbDataAdapter1.Fill(DataSet11)
        DataGrid1.DataBind()
        If Not IsPostBack Then
            BindGrid()  '数据加载函数
        End If
    End Sub

'更新事件过程
    Private Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand
        Dim mysql As String
        Dim mycmd As OleDb.OleDbCommand
        Dim id As Integer = e.Item.Cells(0).Text            '获取激活行的第一单元格的文本
        Dim Txt As String = CType(e.Item.Cells(1).Controls(0), TextBox).Text.ToString        '将单元格转换为textbox控件,再获取他的文本
              mysql = "UPDATE tab_pkinds SET tab_pkinds.pkinds = '" + Txt + "' WHERE id=" & id

        Response.Write(Txt)
        mycon.Open()
        mycmd = New OleDb.OleDbCommand(mysql, mycon)
        mycmd.ExecuteNonQuery()
        mycon.Close()
        DataGrid1.EditItemIndex = -1
        BindGrid()
    End Sub
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-6 15:12 , Processed in 0.105260 second(s), 36 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表