主题:关于用户控件的使用
小弟在用用户控件做一个热门商品浏览的时候碰到了一个问题,希望高手们来帮帮忙,谢谢了!
问题是这样的:
我先做了一个用户控件GoodsInfo(放在UserControl文件夹下),用于显示商品的信息。代码如下:
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;
using System.Data.SqlClient;
public partial class UserControl_GoodsInfo : System.Web.UI.UserControl
{
SqlConnection sqlcon = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
private string GoodsID;
public string GOODSID
{
set
{
this.GoodsID = value.ToString();
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string sqlstr = "select * from tb_GoodsInfo where GoodsID='" + GoodsID + "'";
sqlcon.Open();
SqlCommand sqlcmd = new SqlCommand(sqlstr, sqlcon);
SqlDataReader sqldr = sqlcmd.ExecuteReader();
sqldr.Read();
this.lblGoodsName.Text = sqldr.GetString(2);
this.lblPrice.Text = sqldr.GetSqlInt32(4).ToString();
this.lblOurPrice.Text = sqldr.GetSqlInt32(5).ToString();
this.hLinkDetails.NavigateUrl = "GoodsDetails.aspx?GoodstID=" + this.GoodsID;
this.imgGoods.ImageUrl = "/ShopTest/Image/" + sqldr.GetString(6);
}
}
}
然后我在另一个地方调用这个用户控件
在红色字体的地方显示错误:找不到类型或命名空间名称“GoodsInfo”(是否缺少 using 指令或程序集引用?)
在蓝色字体的地方显示错误:“System.Web.UI.ControlCollection.Add(System.Web.UI.Control)”最匹配的重载方法具有一些无效参数
private void HotGoods()
{
string sqlstr = "select top 4 GoodsID from tb_HotGoods order by HotGoodsID ASC";
sqlcon.Open();
SqlCommand sqlcmd = new SqlCommand(sqlstr, sqlcon);
int i = 0;
SqlDataReader sqldr = sqlcmd.ExecuteReader();
System.Web.UI.WebControls.TableRow tr = new TableRow();
while (sqldr.Read())
{
i = i + 1;
System.Web.UI.WebControls.TableCell tc = new TableCell();
[size=3][color=FF0000]GoodsInfo[/color][/size] gInfo = ([size=3][color=FF0000]GoodsInfo[/color][/size])this.LoadControl("GoodsInfo.ascx");
gInfo.goodsID = sqldr.GetString(0);
[size=3][color=0000FF]tc[/color][/size].Controls.Add(gInfo);
tr.Controls.Add(tc);
if (i % this.rowNum == 0)
{
this.tableHotGoods.Rows.Add(tr);
tr = new TableRow();
}
}
if (i % rowNum != 0)
{
this.tableHotGoods.Rows.Add(tr);
}
sqldr.Close();
sqlcon.Close();
}
是不是因为用户控件放在了文件夹了才发生这样的问题?
问题是这样的:
我先做了一个用户控件GoodsInfo(放在UserControl文件夹下),用于显示商品的信息。代码如下:
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;
using System.Data.SqlClient;
public partial class UserControl_GoodsInfo : System.Web.UI.UserControl
{
SqlConnection sqlcon = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
private string GoodsID;
public string GOODSID
{
set
{
this.GoodsID = value.ToString();
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string sqlstr = "select * from tb_GoodsInfo where GoodsID='" + GoodsID + "'";
sqlcon.Open();
SqlCommand sqlcmd = new SqlCommand(sqlstr, sqlcon);
SqlDataReader sqldr = sqlcmd.ExecuteReader();
sqldr.Read();
this.lblGoodsName.Text = sqldr.GetString(2);
this.lblPrice.Text = sqldr.GetSqlInt32(4).ToString();
this.lblOurPrice.Text = sqldr.GetSqlInt32(5).ToString();
this.hLinkDetails.NavigateUrl = "GoodsDetails.aspx?GoodstID=" + this.GoodsID;
this.imgGoods.ImageUrl = "/ShopTest/Image/" + sqldr.GetString(6);
}
}
}
然后我在另一个地方调用这个用户控件
在红色字体的地方显示错误:找不到类型或命名空间名称“GoodsInfo”(是否缺少 using 指令或程序集引用?)
在蓝色字体的地方显示错误:“System.Web.UI.ControlCollection.Add(System.Web.UI.Control)”最匹配的重载方法具有一些无效参数
private void HotGoods()
{
string sqlstr = "select top 4 GoodsID from tb_HotGoods order by HotGoodsID ASC";
sqlcon.Open();
SqlCommand sqlcmd = new SqlCommand(sqlstr, sqlcon);
int i = 0;
SqlDataReader sqldr = sqlcmd.ExecuteReader();
System.Web.UI.WebControls.TableRow tr = new TableRow();
while (sqldr.Read())
{
i = i + 1;
System.Web.UI.WebControls.TableCell tc = new TableCell();
[size=3][color=FF0000]GoodsInfo[/color][/size] gInfo = ([size=3][color=FF0000]GoodsInfo[/color][/size])this.LoadControl("GoodsInfo.ascx");
gInfo.goodsID = sqldr.GetString(0);
[size=3][color=0000FF]tc[/color][/size].Controls.Add(gInfo);
tr.Controls.Add(tc);
if (i % this.rowNum == 0)
{
this.tableHotGoods.Rows.Add(tr);
tr = new TableRow();
}
}
if (i % rowNum != 0)
{
this.tableHotGoods.Rows.Add(tr);
}
sqldr.Close();
sqlcon.Close();
}
是不是因为用户控件放在了文件夹了才发生这样的问题?