0

私のページには3つのユーザーコントロールがあります。このユーザー コントロールの 1 つは fileUploading に関するもので、2 つ目は fileUploade Keyword に関するものです。ファイルがアップロードされると、fileUploading usercontrol は挿入された記録の Id を返します。今、私はこのIDをfileUploadedキーワードで使用したいのですが、ファイルアップロードユーザーコントロールでIDを表示するためにラベルに挿入すると、たとえば1または2または..の適切なIDが表示されますが、キーワードus​​ercontrolでは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 に答える