2011-01-19 25 views
0

私は、動的に作成され、PlaceHolderに配置された2つのGridViewを持っています。 Selectボタンの上にマウスを置くと、__doPostBack('ctl00$bodyPlaceHolder$ctl0X','Select$Y')と表示されます。ここで、XはページのGridView/Controlインデックス、YはそのGridViewの行番号です。
GridViewを動的に作成しているので、ctl0Xという名前を付けても意味がありますが、PostBackではどのようにこの情報を使用しますか?
SelectedIndexChanged EventHandlerを追加しても問題はありませんが、呼び出されることはありません。
私はこのような他の1つの質問を見つけましたが、グリッドビューをGridViewに追加する必要がありました。これは動的でなければならず、元の問題に戻ります。




編集
オーケー、私は__doPostBack('ctl00$bodyPlaceHolder$blahblahSmith',Select$Yを取得するページでマウスオーバーのように、私は、このようにそれぞれのGridViewに一意の名前を与え、gridViewDynamic.ID = "blahblah" + r.LastNameを設定し、私はまだので、ポストバック上のアイテムにアクセスすることはできません彼らははもう存在しません。そこで、GridView gView = (GridView)this.Page.FindControl(blahblahSmith)と呼ばれるif(IsPostBack)に同じGridView作成コードを追加しました。グレート、gViewはnullではありません。しかし、行のすべてのデータがあります。 gView.Rows[0]を呼び出すとnullが返されます。動的GridViewのPostbackUrlは、私が彼らがそうでなければならないとは思わない

答えて

1

使用Page.FindControl(「TheNameYouGaveTheDynamicGridView」)

GridView grid = Page.FindControl("TheNameYouGaveTheDynamicGridView") as GridView; 

あなたがMasterPagesを使用している場合は、ページ上のコントロールを見つけるために、異なるアプローチを取る必要があるが、それは同じ前提です。

+0

少し助けてくれました。上記の編集をご覧ください。 – Marcus

+0

私はそれを理解しました。私はGridViewを作成したときにDataKeyNamesを設定していませんでした。 SelectedIndexChanged EventHandlerでは、送信者をGridViewとしてキャストし、SelectedDataKey.Valuesを使用して必要な値を取得できます。ありがとう。 _ _私はまだやっているように感じていますが、それは一種の汚れです。しかし、少なくともそれは動作します。 – Marcus