0

サイト全体を駆動するSite.map駆動ASPのメニューコントロールを備えたイントラネットページがあります。

私のページのほとんどでは、現在のウィンドウ内の新しいコンテンツページにユーザーをプッシュするのは素晴らしいことです。

ただし、特定の大規模なレポートの場合、ページ全体を快適に表示するのに十分なスペースがありません。

特定のノードをクリックすると、newまたはpop upウィンドウが表示され、サイズを選択するオプションが理想的に表示される可能性はありますか。

サイトマップファイルのサンプルコード

<siteMap>
  <siteMapNode title="Top" >
    <siteMapNode title="Menu 1" >
      <siteMapNode title="Report" url="~/Iwantthisurl-to-pop-out.aspx"/>
    </siteMapNode>
  </siteMapNode>
</siteMap>

編集、

ここのコメントでURLをたどった後、私はずっと近くにいます。ただし、エラーが発生します。

Protected Sub Menu1_MenuItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.MenuEventArgs)


    Dim address As String = String.Empty
    Dim heigth As String = String.Empty
    Dim width As String = String.Empty
    Dim title As String = String.Empty
    Dim url As String = String.Empty
    Dim poptest As String = String.Empty

    poptest = CStr(DataBinder.Eval(e.Item.DataItem, "url"))


    If String.IsNullOrEmpty(poptest) Then

        address = CStr(DataBinder.Eval(e.Item.DataItem, "address"))
        heigth = CStr(DataBinder.Eval(e.Item.DataItem, "heigth"))
        width = CStr(DataBinder.Eval(e.Item.DataItem, "width"))
        title = CStr(DataBinder.Eval(e.Item.DataItem, "title"))
        url = CStr(DataBinder.Eval(e.Item.DataItem, "url"))
    Else

    End If

何らかの理由で、標準のサイトマップ属性(タイトル、URLなど)とエラー(DataBinding:'System.Web.SiteMapNode'には'address'という名前のプロパティが含まれていません)のみをバインドしています。標準属性は、実行されたカスタム属性が合格しているようです

私はとても近くにいるのでとてもイライラします!!

編集2:

_blankコマンドを使用して別のウィンドウを開く方法を見つけましたが、ウィンドウサイズを調整したり、アドレスバーなどを削除したりすることはできません。リンクされたページの例を誰かが機能させることができれば、例を見てみたいです。

編集3:

これらの線と関係があると確信しました

title = ((SiteMapNode)(e.Item.DataItem))["title"]; 

すべきではない

title = ((System.Web.SiteMapNode)(e.Item.DataItem)).Title;

ただし、これを非標準のサイトマップパラメータ(アドレス、高さなど)に使用すると、エラーがスローされますか?

4

2 に答える 2

2

JavaScriptを使用している場合は、次のようなものを使用できます

function popup()
{
       var url = '/thepagetopopup.aspx';
       window.showModalDialog(url, 'Value', 'dialogHeight:600px,dialogWidth:1000px;');
       //or
       window.open(url, 'value', 'dialogHeight:600px,dialogWidth:800px');
       return false;
}

次に、asp コントロールで関数を呼び出します。

お役に立てれば

于 2009-10-30T12:47:29.657 に答える
0

サイトマップページでターゲットという名前の属性を各ノードに追加し(ポップアップが必要な場合は_blankに設定)、マスターサイトマップテンプレートで次のことを行うだけです

<asp:SiteMapPath ID="SiteMapPath1" runat="server">
  <RootNodeTemplate>
<a href='#Eval("url")' target="_blank"><%# Eval("title") %></a>
     <asp:LinkButton ID="LinkButton1" runat="server" 
                     Text='<%# Eval("title") %>' 
                     CommandArgument='<%# Eval("url") %>' 
target='<%# Eval("target") %>' 
                     OnCommand="LinkButton1_Command">
     </asp:LinkButton>
  </RootNodeTemplate>
</asp:SiteMapPath>
于 2009-10-30T14:51:18.597 に答える