调用Web用户控件的方法

dafeng168 2006-09-29 03:53:17
例default.aspx上有控件一个placeholder,一个button;
UCProduct.ascx上有几个TextBox;
UCProduct.ascx.cs上写有一个方法SaveProduct将UCProduct.ascx上的几个TextBox的值保存到数据库,
在default.aspx.cs上以编程方式将UCProduct加载在default.aspx上
即placeholder.controls.add("UCProduct.ascx")
请问在default.aspx上的BUTTON单击事件中,调用到UCProduct.ascx的SaveProduct()呢??
...全文
338 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
dafeng168 2006-10-08
  • 打赏
  • 举报
回复
问题解决了.给分
peeperp 2006-09-29
  • 打赏
  • 举报
回复
不清楚你的Add控件是放在哪里~!
如果是放在PageLoad中的话只要你不放在(!Page.IsPostBack)中的话在点按钮后应该是能调用的,,如果是放在另一个ButtonClick事件中的话那就要在你调用testControl.YourMethod();
方法之前再次Load那个用户控件才行~!
这样应该是可以的

public class default
{
public web.control.UCProduct _UCProduct1;//web.control是UCProduct的命名空间 protected System.Web.UI.WebControls.Button btnSave;
protected System.Web.UI.WebControls.Button btnLoadUC;

private void Page_Load(object sender, System.EventArgs e)
{
if(ViewState["ttt"] != null && ViewState["ttt"].ToString() == "123")
{
_UCProduct1 = (web.control.UCProduct)LoadControl("_UCProduct1.ascx");
this.PalceHolder1.Controls.Add(_UCProduct1);
}
}

private void btnLoadUC_Click(object sender, System.EventArgs e)
{
ViewState["ttt"] = "123";
_UCProduct1=(Web.controls._UCProduct1)LoadControl("../controls/UCProduct.ascx");
this.PalceHolder1.Controls.Add(_UCProduct1);//

}
private void btnSave_Click(object sender, System.EventArgs e)
{
_UCProduct1.SaveData();//调试运行到这就出现错误
}
}
dafeng168 2006-09-29
  • 打赏
  • 举报
回复
刚才写错了.不好意思.!!
Web.controls应该是web.control

再顶啊
jasonduan007 2006-09-29
  • 打赏
  • 举报
回复
我也试了,不成,顶吧
jasonduan007 2006-09-29
  • 打赏
  • 举报
回复


_UCProduct1=(Web.controls._UCProduct1)LoadControl("../controls/UCProduct.ascx");

把Web.controls._UCProduct1换成web.control.UCProduct
jasonduan007 2006-09-29
  • 打赏
  • 举报
回复
public web.control.UCProduct _UCProduct1
_UCProduct1=(Web.controls._UCProduct1)

web.control和Web.controls????
jecray 2006-09-29
  • 打赏
  • 举报
回复
主要代码
ascx的
namespace WebApplication1
public class WebUserControl1 : System.Web.UI.UserControl
{
public void vote()
{
Response.Write("sadf");
}

}
}
aspx代码
<uc1:WebUserControl1 id="WebUserControl12" runat="server"></uc1:WebUserControl1>
aspx.cs代码
public WebApplication1.WebUserControl1 WebUserControl12;

WebUserControl12.vote();
dafeng168 2006-09-29
  • 打赏
  • 举报
回复
我下面这种方法做的,

defaut.aspx
public class default
{
public web.control.UCProduct _UCProduct1;//web.control是UCProduct的命名空间 protected System.Web.UI.WebControls.Button btnSave;
protected System.Web.UI.WebControls.Button btnLoadUC;

private void btnLoadUC_Click(object sender, System.EventArgs e)
{
_UCProduct1=(Web.controls._UCProduct1)LoadControl("../controls/UCProduct.ascx");
this.PalceHolder1.Controls.Add(_UCProduct1);//

}
private void btnSave_Click(object sender, System.EventArgs e)
{
_UCProduct1.SaveData();//调试运行到这就出现错误
}
}
-------------
UCProduct.ascx

public class UCProduct
{
public System.Web.UI.WebControls.TextBox tbProductName;
public System.Web.UI.WebControls.TextBox tbPrice;
public void SaveData()
{
//把数据更新到数据库
}
}
vzxq 2006-09-29
  • 打赏
  • 举报
回复
public 你的命名空间.UCProduct UCProduct1;
UCProduct1 这个名称要和你前台页面晨的名称一样
还有你的用户控件里的方法要声明为pulibc类型
dafeng168 2006-09-29
  • 打赏
  • 举报
回复
顶啊,如果问题解决了,8天假就好过一些,请高手进来
fencole 2006-09-29
  • 打赏
  • 举报
回复
那就帮你顶吧
dafeng168 2006-09-29
  • 打赏
  • 举报
回复
在博客园搜索到下面的方法,照它的意思做,可是在调用testControl.YourMethod(); 时就出现错误"未将对象引用置到对象的实例"
================================================
将ascx中的方法定义成 public,然后在page中调用,如:

ascx文件中定义控件:
public class TestControl :System.Web.UI.UserControl
{
public void YourMethod() //你需要调用的方法
{
}
}

页面中:

private TestControl testControl;

加载控件:
testControl=(TestControl)LoadControl("TestControl.ascx");
PlaceHolder1.Controls.Add(testControl);

在button中调用:

testControl.YourMethod();
jasonduan007 2006-09-29
  • 打赏
  • 举报
回复
那就帮你顶吧
dafeng168 2006-09-29
  • 打赏
  • 举报
回复
试过了,上面方法的不行
jasonduan007 2006-09-29
  • 打赏
  • 举报
回复
看看这样行不行

public 你的命名空间.UCProduct UCProduct1;

btnClick()
{
UCProduct1.SaveProduct();//SaveProduct() 为public
}
dafeng168 2006-09-29
  • 打赏
  • 举报
回复
顶者有分

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧