2017-12-19 3 views
-1

ASP.NETのGridviewのデータ行を、前のページの行データの内容を表示する2番目のページに解析したいとします。私のGridviewはすでにデータベースにリンクされています。C#とASP.NETを使用してGridview行から別のページにデータを解析する方法

私の現在のGridviewは、このようなものになります。私は、送信内容のハイパーリンクをクリックしたときにこれを達成したいと思い

enter image description here

enter image description here

私が上でクリックした場合を2行目その行のデータは次のページに表示されます

次​​のコードは、私は私のリンクボタンItemTemplateに下入れていたものです:

<ItemTemplate> 
     <asp:Label ID="Label1" runat="server" Text='<%# Bind("name") %>'></asp:Label> 
     <asp:LinkButton ID="viewTours" runat="server" CommandName="view" CommandArgument='<%# Bind("name") %>' PostBackUrl='<%#"~/details.aspx?RowIndex=" + Container.DataItemIndex %>'>View</asp:LinkButton> 
     </ItemTemplate> 

これは私がからデータをロードする2番目のページから私のページの読み込み方法です。

 protected void Page_Load(object sender, EventArgs e) 
    { 

    if (this.Page.PreviousPage != null) 
    { 
     int rowIndex = int.Parse(Request.QueryString["RowIndex"]); 
     GridView GridView = (GridView)this.Page.PreviousPage.FindControl("GridView"); 
     GridViewRow row = GridView.Rows[rowIndex]; 
     name.Text = (row.FindControl("name") as Label).Text; 
     //name.Text = row.Cells[0].Text; (this did not work either, i got the same error) 
    } 
} 

私はそれは私が私のhtml(第2)ページのデザインビューでid名とラベルを持っているにもかかわらず、存在しないことを言っ名.textに波線を取得しますが。

選択したGridview行のデータを別のページに解析できるようにするにはどうすればよいですか?私が2番目のページをカスタマイズし、私が好きな場所にラベルを置くことができると仮定します。

これは私のgridviewのコードです。私のバインドはUIを通して行われているので、選択されたグリッドビューの行を別のページにリダイレクトすることを除いて、多くのコードはありません。

protected void GridView_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    Session["tour"] = GridView; 
    Response.Redirect("tourDetails.aspx"); 


} 

実際にページ自体に存在する場合、ラベルテキストが存在しないというエラーが表示されます。

enter image description here

マイラベルにrunat = "server" を含まれています: enter image description here

+0

name.Text = (row.FindControl("name") as Label).Text; 

を変更しますヌル。正しい名前を使用していますか? 'FindControl'指定されたidパラメータを検索します。ラベルIDは "Label1"です。 –

+0

ここに私のラベルIDは、グリッドビューの最初のページからです、私はラベルID "名前"を持っている私の2番目のページに選択したgridview行データをロードしようとしています – depressedGirl

+0

[ Webフォーム](https://msdn.microsoft.com/en-us/library/6c3yckfw.aspx)をクリックすると、uncool one、imoを選択します。 –

答えて

0

あなたはとの結合データを混乱されているID =名前のラベルの

enter image description here

画像構造。あなたはnameキーでコントロールを取得しようとすると、あなたは本当に `row.FindControl(「名前は」)`であるため、このエラーを取得しているLabel1を意味するので、

name.Text = (row.FindControl("Label1") as Label).Text; 
+0

両方が同じです、変更を参照してください – depressedGirl

+1

同じタイプミスでタイプミスを修正したとき。 –

+0

名前がLabel1に変更されていても動作しませんでしたが、名前ラベルが存在しない(ID =名前) – depressedGirl

関連する問題