ObjectDataSource objDs = new ObjectDataSource();
objDs.ID = "objDs";
objDs.SelectMethod = "GetItems";
objDs.TypeName = this.GetType().FullName + "," + this.GetType().Assembly.FullName;
Controls.Add(objDs);
this.SPGridView1.DataSourceID = "objDs";
this.SPGridView1.DataBind(); protected DataTable GetItems()
{
DataTable dtInfo = new DataTable();
return dtInfo = GetNodeView(this.mTv.SelectedNode);
}请高人指点~~~~~~objectdatasource“objDs”未能找到不带参数的非泛型方法“GetItems”是咋回事
objDs.ID = "objDs";
objDs.SelectMethod = "GetItems";
objDs.TypeName = this.GetType().FullName + "," + this.GetType().Assembly.FullName;
Controls.Add(objDs);
this.SPGridView1.DataSourceID = "objDs";
this.SPGridView1.DataBind(); protected DataTable GetItems()
{
DataTable dtInfo = new DataTable();
return dtInfo = GetNodeView(this.mTv.SelectedNode);
}请高人指点~~~~~~objectdatasource“objDs”未能找到不带参数的非泛型方法“GetItems”是咋回事
只留前面应该就可以了objDs.TypeName = this.GetType().FullName ;
在那里定义的
GetNodeView方法是否正确
要public
this.SPGridView1.DataBind();
using.....
namespace SPgridview
{
public class Class1 : System.Web.UI.Page
{
protected Label locaLb;
protected TreeView mTv;
protected string mPath;
protected SPGridView SPGridView1;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TreeBind();
}
SpgvBind();
}
public void SpgvBind()
{
.......
}
public void TreeBind()//页面加载 绑定treeview
{
......
}
public DataTable GetDT()//databale数据源
{
DataTable mDt = new DataTable();
mDt.Columns.Add("Title");
mDt.Columns.Add("Author", typeof(string));
mDt.Columns.Add("Rating", typeof(string));
mPath = SPContext.Current.Site.Url;
using (SPSite mSite = new SPSite(mPath))
{
using (SPWeb mWeb = mSite.RootWeb)
{
foreach (SPList spitem in mWeb.Lists)
{
SPFile mFile;
foreach (SPListItem item in spitem.Items)
{
try
{
DataRow mDr = mDt.NewRow();
mFile = item.File;
mDr["Title"] = "IMAGES/" + mFile.IconUrl;
mDr["Author"] = mFile.Name.ToString();
mDr["Rating"] = mFile.Length.ToString() + " Kb";
mDt.Rows.Add(mDr);
}
catch (Exception ex)
{ }
} }
}
}
return mDt;
Cache["mDt"] = mDt;
}
protected void mTv_SelectedNodeChanged(object sender, EventArgs e)//treeview单击节点事件
{
DataTable mTdt = new DataTable();
mTdt.Columns.Add("Title");
mTdt.Columns.Add("Author");
mTdt.Columns.Add("Rating");
DataRow mTdr = mTdt.NewRow(); ObjectDataSource objDs = new ObjectDataSource();
objDs.ID = "objDs";
objDs.SelectMethod = "GetItems";
objDs.TypeName = this.GetType().FullName;
Controls.Add(objDs);
this.SPGridView1.DataSourceID = "objDs";
this.SPGridView1.DataBind();
}
protected DataTable GetNodeView(TreeNode tnode)//获取treeview节点的详细信息
{
DataTable mDt = new DataTable();
mDt.Columns.Add("Title");
mDt.Columns.Add("Author", typeof(string));
mDt.Columns.Add("Rating", typeof(string));
mPath = SPContext.Current.Site.Url;
if (tnode.Text == this.mTv.Nodes[0].Text)
{
using (SPSite mSite = new SPSite(mPath))
{
using (SPWeb mWeb = mSite.RootWeb)
{
foreach (SPList item in mWeb.Lists)
{
SPFile mFile;
foreach (SPListItem childitem in item.Items)
{
try
{
DataRow mDr = mDt.NewRow();
mFile = childitem.File;
if (mFile != null)
{
mDr["Title"] = "images/" + mFile.IconUrl;
}
mDr["Author"] = mFile.Name.ToString();
mDr["Rating"] = mFile.Length.ToString() + " kb";
mDt.Rows.Add(mDr);
}
catch (Exception ex)
{ }
}
}
}
}
}
else
{
using (SPSite mSite = new SPSite(mPath))
{
using (SPWeb mWeb = mSite.RootWeb)
{
foreach (SPList listitem in mWeb.Lists)
{
if (tnode.Text == listitem.Title)
{
SPFile mFile;
foreach (SPListItem childitem in listitem.Items)
{
try
{
DataRow mDr = mDt.NewRow();
mFile = childitem.File;
if (mFile != null)
{
mDr["Title"] = "images/" + mFile.IconUrl;
}
mDr["Author"] = mFile.Name.ToString();
mDr["Rating"] = mFile.Length.ToString() + " kb";
mDt.Rows.Add(mDr);
}
catch (Exception ex)
{ }
}
}
else
{
SPFile mFile;
foreach (SPListItem childitem in listitem.Items)
{
try
{
if (tnode.Text == childitem.Title)
{
try
{
DataRow mDr = mDt.NewRow();
mFile = childitem.File;
if (mFile != null)
{
mDr["Title"] = "images/" + mFile.IconUrl;
}
mDr["Author"] = mFile.Name.ToString();
mDr["Rating"] = mFile.Length.ToString() + " kb";
mDt.Rows.Add(mDr);
}
catch (Exception ex)
{ }
}
else
{ }
}
catch (Exception ex)
{ }
}
}
}
}
}
}
return mDt;
}
protected DataTable GetItems()
{
DataTable dtInfo = new DataTable();
return dtInfo = GetNodeView(this.mTv.SelectedNode);
}
}
}完整的代码~~~~
还有一个问题:就是this.SPGridView1.DataSourceID = "objDs"换成this.SPGridView1.DataSource = 数据源;
分页会有问题,但是不会出现题目中的问题~~~~高手请指教
{
...
}
这个TypeName的设置是一个类名!!!
楼主设置的什么??看不出!!调用GetItems()方法,一定是在某个类下的,也就是说:
ObjectDataSource的TypeName设置类名;
ObjectDataSource的SelectMethod设置该类下的方法名!!
用
protected DataTable GetItems()
{
DataTable dtInfo = new DataTable();
return dtInfo = GetNodeView(this.mTv.SelectedNode);
}
改成
public DataTable GetItems()
{
DataTable dtInfo = new DataTable();
return dtInfo = GetNodeView(this.mTv.SelectedNode);
}
就可以了。