- PR -

親画面にある値の取得方法

投稿者投稿内容
ぷり
ベテラン
会議室デビュー日: 2008/02/22
投稿数: 60
投稿日時: 2008-09-10 12:21
RapidExpress様、本当にありがとうございます。

別解で頂いた内容はちゃんと動作いたしました。
ありがとうございます。


ご指摘ありがとうございます。
ご記載頂いたコードを元にしたいと思います。

ただ、RowCommandにある「Context.Session」で
Item欄が 「インデックス付きのプロパティを評価するためには、プロパティが限定されていて、ユーザーにより引数が明示的に指定されていなければなりません。」
とでて、Sessionに値がとれていない様な感じがしました。

この様な表記がでても、問題ないのでしょうか?

RapidExpress
常連さん
会議室デビュー日: 2007/11/11
投稿数: 42
お住まい・勤務地: おおさか
投稿日時: 2008-09-10 13:27
引用:

ただ、RowCommandにある「Context.Session」で
Item欄が 「インデックス付きのプロパティを評価するためには、プロパティが限定されていて、ユーザーにより引数が明示的に指定されていなければなりません。」
とでて、Sessionに値がとれていない様な感じがしました。

この様な表記がでても、問題ないのでしょうか?



えーと。。。どこにもAddしている箇所が見当たらないのでダメだと思います。
また、データの受け渡しが済んだら解放してやるのが望ましいでしょうね。
太字で記した個所を確認してください。

コード:
親.aspx.vb

    Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand 
	Dim grid As GridView = TryCast(sender, GridView) 

	If grid Is Nothing Then 
	    Exit Sub 
	End If 

	If e.CommandName = "完了" Then 
	    Dim index As Integer = Convert.ToInt32(e.CommandArgument) 
	    'Sessionに値をセット
             Context.Session.Add("品名",CType(grid.Rows(index).FindControl("Label6"), Label).Text)
	    ClientScript.RegisterStartupScript(Me.GetType, "OPEN", "window.open('child.aspx');", True)
	End If 
    End Sub

---

子.aspx.vb

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If IsPostBack = False Then
            If Session("品名") IsNot Nothing Then
                TextBox1.Text = Session("品名").ToString
                '値の取得が終わったので解放
                Session.Remove("品名")
            Else
                'データがないのでエラーページに飛ばす
                Response.Redirect("エラーページ.aspx")
            End If
        End If
    End Sub


_________________
//---
 あやのこうじ@RapidExpress
ぷり
ベテラン
会議室デビュー日: 2008/02/22
投稿数: 60
投稿日時: 2008-09-10 15:21
RapidExpress様

ご指導頂いたおかげで希望通りの動きを得る事ができました。

ポップアップの件は、サイトの許可をする事で回避できそうです。

今回の内容は今後も非常に多く使用すると思いますので、

応用してがんばりたいと思います。

本当にありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)