2

ユーザー名のリストを表示する ASP.NET Web ページ (aspx) 内に小さなウィンドウを作成する必要があります。ユーザー名をクリックすると、特定のサイズで開くための新しいブラウザー ウィンドウ (タブではない) が必要です。 . 使用するコントロールが何であれ、呼び出すことができるコードビハインド関数に入ることができると仮定すると、新しいブラウザーウィンドウを開くことができます....

 string url = "http://www.dotnetcurry.com";
 ScriptManager.RegisterStartupScript(this, this.GetType(), "OpenWin", "<script>openNewWin    ('" + url + "')</script>", false);

リンクのページにあるマークアップを次に示します。

<script language="javascript" type="text/javascript">
        function openNewWin(url) {
            var x = window.open(url, 'mynewwin', 'width=600,height=600,toolbar=1');
            x.focus();
        }
</script>

1.) この問題に対してどのようなコントロールを使用する必要がありますか?データベースからそれぞれのユーザー名を取得した後の構造はどのようになりますか?

これが私が来た最も近いものです...このコードは、HTMLリンクのリストにバインドしようとしているASP.NET箇条書きリストを使用しています。代わりに、このコードは実際には HTML としてページにレンダリングされます (ハイパーリンクに解析されません..)

   protected void Page_Load(object sender, EventArgs e)
    {
        UsersBulletedList.DataSource = theContext.GetOnlineFavorites(4);
        UsersBulletedList.DataBind();
    }

  public IQueryable<String> GetOnlineFavorites(int theUserID)
    {
        List<String> theUserList = new List<String>();
        IQueryable<Favorite> theListOfFavorites= this.ObjectContext.Favorites.Where(f => f.SiteUserID == theUserID);
        foreach (Favorite theFavorite in theListOfFavorites)
        {
            string theUserName = this.ObjectContext.SiteUsers.Where(su => su.SiteUserID == theFavorite.FriendID && su.LoggedIn == true).FirstOrDefault().UserName;
            yourOnlineFavorites.Add("<a href='RealTimeConversation.aspx?UserName=" + theUserName + "'>" + theUserName + "</a>");
           //this needs to help me get into a codebehind method instead of linking to another page.
        }
        return yourOnlineFavorites.AsQueryable();
    }
4

1 に答える 1

2

Repeater私はあなたのページにを作成し、GetOnlineFavoritesメソッドからの結果をバインドします。の中に、スクリプトをページに追加するイベントをRepeater配置します。LinkButtonItemCommand

マークアップ:

<asp:Repeater ID="repeater" runat="server" OnItemCommand="repeater_ItemCommand">
    <ItemTemplate>
        <asp:LinkButton runat="server" ID="linkButton"
            Text='<%# Eval("PropertyFromBindingCollection") %>'
            CommandName="OpenWindow" 
            CommandArgument='<%# Eval("AnotherProperty") %>' />
    </ItemTemplate>
</asp:Repeater>

ここでは、のTextプロパティとのプロパティがLinkButtonコレクションCommandArgumentRepeaterいくつかのプロパティに設定されます。

コードビハインド:

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {
        repeater.DataSource = theContext.GetOnlineFavorites(4);
        repeater.DataBind();
    }
}

protected void repeater_ItemCommand(object sender, RepeaterCommandEventArgs e)
{
    if(e.CommandName == "OpenWindow")
    {
        string arg = e.CommandArgument; // this could be the url, or a userID to get favorites, or...?
        //Your open window script
    }
}

これで、ユーザーがLinkBut​​tonの1つをクリックすると、のItemCommandイベントが発生しRepeater、(LinkBut​​tonに設定されている)をチェックしてから、の設定をCommandName取得します。をURLとして設定した場合は、OpenWinスクリプトでそれを使用できます。それ以外の場合は、引数として設定したデータを使用して、開きたいURLを取得します。CommandArgumentLinkButtonCommandArgument

于 2013-02-19T18:03:32.823 に答える