将Datasource对象添加为属性

时间:2011-11-21 10:20:53

标签: c# visual-studio-2010 data-binding sqldatasource web-controls

我有两个问题:

我正在创建一个WebControl,我想添加SqlDataSource作为其属性。在什么是属性名称下无关紧要,Visual Studio将其名称显示为Database。以下是我的代码,Visual Studio 2010 express将Property Editor中的所有Data1~Data3属性显示为“Database”

第二个问题是当我点击属性编辑器中数据库名称旁边的箭头时,我得到一个异常“参数不正确。(HRESULT异常:0x80070057(E_INVALIDARG))”

我做错了哪一部分?

我的组件代码:

using System;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Collections;

namespace Comp1 {
    [ToolboxData("<{0}:M1GridData runat=server></{0}:M1GridData>")]
    public class M1GridData : WebControl {

        public SqlDataSource Data1 { get; set; }
        public SqlDataSource Data2 { get; set; }
        public SqlDataSource Data3 { get; set; }

        protected override void Render(HtmlTextWriter writer) {
                writer.Write("Something");
        }
    }
}

我的网页代码:

<cc1:M1GridData ID="M1GridData1" runat="server" />
<asp:SqlDataSource ID="SqlDataSource1" runat="server" />

1 个答案:

答案 0 :(得分:1)

我尝试了你的代码,它运行正常。您可能需要重新启动Visual Studio或重新安装组件。

还要检查Temporary ASP.NET Files中安装的每个框架中的C:\WINDOWS\Microsoft.NET\Framework\文件夹并删除其内容。有时ASP.NET会忘记删除缓存的dll,因此会出现很多非意外错误。