我的页面中有 3 个用户控件。此用户控件之一是关于 fileUploading ,第二个是关于 fileUploade Keyword 。当文件上传时,fileUploading 用户控件返回记录的插入的 Id。现在我想在 fileUploaded 关键字中使用这个 id,但是什么时候插入标签以查看 fileuploading 用户控件中的 id 显示正确的 id 例如 1 或 2 或 .. 但在关键字 usercontrol 中只显示 0 值。我使用实体框架。我如何在关键字用户控件中访问此 ID。谢谢。
问问题
3302 次
2 回答
2
会话变量可能是最好的方法:
于 2012-04-14T05:42:03.533 回答
0
您可以使用委托将 id 传递回父页面。当 id 被传递回父页面时,您在父页面上运行一个函数,该函数调用关键字 usercontrol 上的公共函数。
因此,在您的 Uploading 用户控件上,首先创建父页面将侦听的委托:
public delegate void PassIDToParent(string ID);
public event PassIDToParent PassID;
接下来,在您返回 id 后触发委托:
protected void Upload() //--- this is your current upload function
{
//--- other upload code
string ReturnedID = "1"; //--- whatever is returned
PassID(ReturnedID);
}
现在您需要在父页面上设置监听器。一旦监听器执行,它将执行“PassID”函数。在此函数中,您将调用关键字 usercontrol 的公共函数“LoadID”。所以在父页面上,这样做:
protected void Page_Load(object sender, EventArgs e)
{
//--- setup the listener to receive the uploaded id
UploadUserControlID.PassID += new UploadUserControlID_ClassName.PassIDToParent(PassID);
}
protected void PassID(string id)
{
//--- this method is called from the listener above and it passes the id
KeywordUserControlID.LoadID(id);
}
您的关键字 usercontrol 的代码如下所示:
public void LoadID(string id)
{
//--- do whatever you need to with the id
}
以下是有关使用代表的更多信息:http ://webdeveloperpost.com/Articles/Return-value-from-user-control-in-ASP-NET-and-C-Sharp.aspx
希望有帮助!祝你好运!不要忘记标记为答案!
于 2012-04-15T00:02:13.117 回答