惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
GbyAI
GbyAI
G
Google Developers Blog
Engineering at Meta
Engineering at Meta
月光博客
月光博客
腾讯CDC
Recent Announcements
Recent Announcements
酷 壳 – CoolShell
酷 壳 – CoolShell
爱范儿
爱范儿
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
SegmentFault 最新的问题
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
阮一峰的网络日志
阮一峰的网络日志
博客园 - 【当耐特】
The GitHub Blog
The GitHub Blog
Last Week in AI
Last Week in AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
aimingoo的专栏
aimingoo的专栏
Google DeepMind News
Google DeepMind News
Y
Y Combinator Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Martin Fowler
Martin Fowler
A
About on SuperTechFans
博客园 - 叶小钗

博客园 - EricZhen

【ExtJS实践】之七 :禁止Grid、Treegrid列排序和列菜单 【ExtJS实践】之六 :Combobox从后台获取JSON格式的数据 【ExtJS实践】之五 :常用语句及脚本备忘 【ExtJS实践】之四 :关于ExtJS的createDelegate 【ExtJS实践】之三 :页面布局应用 【ExtJS实践】之二 :TreeGrid显示复选框 【ExtJS实践】之一 :TreeGrid异步加载数据 ASP.Net下使用ExtJS报“Ext未定义”错误的原因 关于在Windows2008里配置AjaxPro.2 【备忘】转:.net的数据库连接字符串 【备忘】转:模态窗口缓存问题的解决 【备忘】红旗Linux下安装VMWare Tools的方法 关于Cookie的一个小问题 [备忘]各类数据库连接字符串 [备忘]autorun专杀工具 [备忘].cll文件的MIME类型 [备忘]方正字库中英文对照表 [SharePoint]不同页面间的多个数据视图间建立关联 C#在Word文档指定位置处理表格
[SharePoint2007]使用自定义数据库的几个问题
EricZhen · 2007-08-30 · via 博客园 - EricZhen

    MOSS2007中提供了显示、新增、编辑、删除自定义数据库的功能。

    显示和删除功能都很容易实现,我在做的过程中没有遇到什么难题,所以就不写了。

    先说说编辑吧:

    我在Designer中添加了一个“项目表单”来完成编辑功能。

    1、我使用的数据库是SQL Server 2005,一开始做编辑功能的时候,MOSS总是提示“数据控件没有执行操作(大体是这个意思)”,无法将编辑结果保存到数据库中。后来经过一项一项的排除才发现,原来是我将数据表的主键也放到了“项目表单”中,所以MOSS才会报错。

    2、将主键去掉后,MOSS不报错了,但又出现了一个新的问题,编辑的结果无法保存到数据库中,这又是为什么呢?
    经过检查,发现如果某个字段的值是null或者空字符串,那么“项目表单”就不会将编辑结果保存到数据库中。因此,如果要使用“项目表单”做编辑,那么要保证数据库中各个字段的默认值不为null或空字符串。

    再说说新增:

    使用Designer在页面中添加一个“新建项目表单”可以很容易的实现新增功能。我这里要说的是如何将其他表中的数据作为新增内容保存到当前做新增功能的数据表中。具体步骤如下:

     1、在Designer中插入一个“新建项目表单”:
新建项目表单
    “新建项目表单”中所有的输入项目都是文本框,这里我们需要将SupplierID对应的输入项目换成下拉列表,其中绑定的是另外一张数据表的数据;

    2、在SupplierID对应的文本框中,插入一个下拉列表,然后将另一张数据表绑定到这个下拉列表中;

    数据绑定的方法请参考SharePoint Designer的帮助,里面有很详细的教程;

    3、在Designer中找到SupplierID对应的文本框的代码:

<asp:TextBox runat="server" id="ff1{$Pos}" __designer:bind="{ddwrt:DataBind('i',concat('ff1',$Pos),'Text','TextChanged','SysID',ddwrt:EscapeDelims(string(@SysID)),'@SupplierID')}" />
            
<asp:DropDownList runat="server" id="DropDownList1" DataTextField="SupplierName" DataSourceID="SqlDataSourceSupplier0830" DataValueField="SysID" />
                                    
<asp:SqlDataSource runat="server" ID="SqlDataSourceSupplier0830" ConnectionString="Data Source=rjdfmis\htsql2005;Initial Catalog=WZMis;Persist Security Info=True;User ID=sa;Password=htsql2005" ProviderName="System.Data.SqlClient" SelectCommand="SELECT [SysID], [SupplierName] FROM [Supplier]" />

   

    用TextBox的id和__designer:bind相关的代码覆盖DropDownList的id的内容,然后删除TextBox;

<asp:DropDownList runat="server" id="ff1{$Pos}" __designer:bind="{ddwrt:DataBind('i',concat('ff1',$Pos),'Text','TextChanged','SysID',ddwrt:EscapeDelims(string(@SysID)),'@SupplierID')}"  DataTextField="SupplierName" DataSourceID="SqlDataSourceSupplier0830" DataValueField="SysID" />

    4、保存,然后在ie中打开这个页面;

    在下拉列表中选择Supplier,然后就可以将对应的SupplierID保存到数据库中了。