0

我的页面中有 3 个用户控件。此用户控件之一是关于 fileUploading ,第二个是关于 fileUploade Keyword 。当文件上传时,fileUploading 用户控件返回记录的插入的 Id。现在我想在 fileUploaded 关键字中使用这个 id,但是什么时候插入标签以查看 fileuploading 用户控件中的 id 显示正确的 id 例如 1 或 2 或 .. 但在关键字 usercontrol 中只显示 0 值。我使用实体框架。我如何在关键字用户控件中访问此 ID。谢谢。

4

2 回答 2

2

会话变量可能是最好的方法:

http://msdn.microsoft.com/en-us/library/ms178581.aspx

于 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 回答