自定义webpart部件问题
小弟自定义一个webpart,用来读取列表数据并绑定到gridview上,一直通不过去,页面提示:值不在预期的范围内。
不清楚到底错在哪了,请各位指导下,谢谢了。
- C# code
using System;using System.Collections.Generic;using System.ComponentModel;using System.Text;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using Microsoft.SharePoint.WebPartPages;using Microsoft.SharePoint;using System.Data;using System.Xml.Serialization;namespace MyWebPart{ [XmlRoot(Namespace = "MyWebPart")] [DefaultProperty("Text")] [ToolboxData("<{0}:WebPartTest runat=server></{0}:WebPartTest>")] public class WebPartTest : WebPart { [Bindable(true)] [Category("Appearance")] [DefaultValue("")] [Localizable(true)] protected Label label; protected GridView gridview; public string Text { get { String s = (String)ViewState["Text"]; return ((s == null) ? "[" + this.ID + "]" : s); } set { ViewState["Text"] = value; } } protected override void RenderWebPart(HtmlTextWriter output) { //base.RenderWebPart(output); RenderChildren(output); } protected override void CreateChildControls() { //base.CreateChildControls(); label = new Label(); label.Text = "This is a webpart test..."; Controls.Add(label); gridview = new GridView(); gridview.Load += new EventHandler(GridViewLoad); gridview.AutoGenerateColumns = true; Controls.Add(gridview); } public void GridViewLoad(object sender, EventArgs e) { BindGridView(); } private void BindGridView() { using (SPWeb web = SPContext.Current.Web) { SPList list = web.Lists["列表001"]; if (list != null) { SPQuery spquery = new SPQuery(); gridview.DataSource = list.GetItems(spquery).GetDataTable(); gridview.DataBind(); } else { // label.Text = "no list...."; } } throw new NotImplementedException(); } }}
[解决办法]
应该是这句代码的问题
SPList list = web.Lists["列表001"];
你可以使用下面的方式,然后再判断
SPList list = null;
try
{
list = web.Lists["列表001"];
}
catch{}
if(list != null)
{
//......
}
[解决办法]
[解决办法]
jf