我查看了网页并找到了大量答案,这些答案都没有帮我解决这个问题!
我在数据项目中有一个方法。然后我有一个带有显示元素的项目。
代码隐藏:
public static DataTable GetAllobjs(SPWeb objWeb)
{
DataTable tmpData = new DataTable();
try
{
allProjects.Columns.Add(ColumnNames.1);
allProjects.Columns.Add(ColumnNames.2);
allProjects.Columns.Add(ColumnNames.3);
allProjects.Columns.Add(ColumnNames.4);
allProjects.Columns.Add(ColumnNames.5);
allProjects.Columns.Add(ColumnNames.6);
allProjects.Columns.Add(ColumnNames.7);
allProjects.Columns.Add(ColumnNames.8);
allProjects.Columns.Add(ColumnNames.9);
//Get the raw project data
List<obj> data= DataAquisition.GetAllobj(objWeb);
/// Loop through the raw data.
foreach (obj currentInformation in data)
{
// Creates a new data row containing information required and adds it to the DATAtable
}
}
catch (Exception exc)
{
// Logs errors here
}
return tmpData;
}
在用户控件后面的页面(cs)中,我有一个调用GetAllobjs的方法(SPWeb objWeb)
[DataObjectMethodAttribute(DataObjectMethodType.Select, true)]
public DataTable GetAllUsers()
{
return Data.GetAllobjs(SPContext.Current.Web);
}
然后页面加载:
ObjectDataSource d = new ObjectDataSource();
d.ID = "s";
d.SelectMethod = "GetAllUsers";
d.TypeName = SPGridView.GetType().AssemblyQualifiedName;
this.Controls.Add(d);
/// Apply a data source to the SPGrid View
SPGridView.DataSourceID = d.ID;
然后在创建子控件上创建并将我的字段绑定到SPGridview并调用数据绑定。
我认为这会有效,但我收到错误。我不确定我是否遗漏了某些组件模型[]标签,我希望有人可能指出我哪里出错了。
答案 0 :(得分:3)
变化:
d.TypeName = SPGridView.GetType().AssemblyQualifiedName;
为:
d.TypeName = this.GetType().AssemblyQualifiedName;
实施例: Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace Q11454649WebApp
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
ObjectDataSource d = new ObjectDataSource();
d.ID = "s";
d.SelectMethod = "GetAllUsers";
//d.TypeName = SPGridView.GetType().AssemblyQualifiedName;
d.TypeName = this.GetType().AssemblyQualifiedName;
this.Controls.Add(d);
/// Apply a data source to the SPGrid View
SPGridView.DataSourceID = d.ID;
}
}
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]
public string[] GetAllUsers()
{
return new string[] { "Joe", "Alan", "Michel" };
}
}
}
的Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" Codebehind="Default.aspx.cs" Inherits="Q11454649WebApp._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="SPGridView" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text="<%# Container.DataItem %>"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>
存档项目:Q11454649WebApp.7z