C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 131 を表示中)
■77454 / )  Re[2]: ASP.NET SiteMapPathコントロールについて
□投稿者/ Ante (2回)-(2015/10/21(Wed) 12:55:33)
WebSurfer さん

ご回答ありがとうございます。

端的に言うとサイトマップパスコントロールがクリックされたら、
サーバー側のイベントでセッションを破棄したかっただけです。

大人しく動的コントロールを生成することでイベントを拾い解決することにしました。

◆aspx
<asp:Panel ID="pnlSiteMap" runat="server">
</asp:Panel>

◆aspx.vb
    ''' <summary>
    ''' サイトマップを生成する
    ''' </summary>
    ''' <param name="dt">生成元データテーブル</param>
    ''' <remarks></remarks>
    Private Sub CreateSiteMaps(ByVal dt As DataTable)
        Me.pnlSiteMap.Controls.Clear()

        Dim lastIndex As Integer = dt.Rows.Count - 1

        Dim st As System.Text.StringBuilder

        For i As Integer = 0 To dt.Rows.Count - 1

            MyLinkBtn = New LinkButton
            MyLinkBtn.ID = "btn_" & i
            MyLinkBtn.Text = dt.Rows(i).Item("NAME")
            'MyLinkBtn.PostBackUrl = dt.Rows(i).Item("URL")
            MyLinkBtn.Enabled = dt.Rows(i).Item("ENABLED")
            MyLinkBtn.ToolTip = dt.Rows(i).Item("NAME")

            '◆イベント追加
            AddHandler MyLinkBtn.Click, AddressOf siteMap_Click
            Me.pnlSiteMap.Controls.Add(MyLinkBtn)

            If i <> lastIndex Then

                st = New System.Text.StringBuilder
                st.AppendLine("<span> > </span>")
                MyWkTag = New Label
                MyWkTag.Text = st.ToString

                Me.pnlSiteMap.Controls.Add(MyWkTag)
            End If

        Next

    End Sub

    ''' <summary>
    ''' サイトマップパスクリックイベント
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub siteMap_Click(sender As Object, e As EventArgs)

        Session(mdlGlobal.gcSessDispParam) = Nothing

        Dim key As String = DirectCast(sender, LinkButton).Text
        Dim nextUrl As String = GetSiteMapValue(key)
        Call Response.Redirect(nextUrl)

    End Sub

解決済み
返信 編集キー/


管理者用

- Child Tree -