2011-11-15 25 views
1

リピータコントロールがあるWebアプリケーションを開発しています。リンクボタンは、リピータコントロール内にあります。リンクボタンをクリックすると、特定のユーザー(クリックされたユーザー)のデータ入力ページとなるページにリダイレクトされます。 user-id/emplidを使用して新しいページのいくつかのフィールドをあらかじめ入力しなければならず、他のフィールドはデータ入力が許可されるべきです。私は新しいデータ入力ページにリダイレクトする必要がありますどのようにリピータコントロールのリンクボタンがグリッド表示にリダイレクト

マイquestion-

  1. ?私はまだそのページを決めていない。私はそれがフォームページまたはグリッドビューであり、別のページになると思っています。

コード:

<asp:LinkButton ID="getDetails" OnCommand="getDetails_cmd" runat="server" 
         CommandArgument='<%#DataBinder.Eval(Container.DataItem,"Emplid")%> 
' Text='<%#DataBinder.Eval(Container.DataItem,"NAME")%>' 
          CommandName="Details"></asp:LinkButton> 
  1. commandargumentを使用して、私は推測するページにリダイレクトした後、私はEMPLIDを得ることができます。私は複数の値を渡す?ページのキーを教えてください。

  2. ページ内の複数のテーブルを更新するにはどうすればよいですか?

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

おかげで、

答えて

1

ItemCommandのイベントは、制御がRepeaterである必要があります。

<asp:Repeater ID="Repeater1" runat="server" 
     onitemcommand="Repeater1_ItemCommand"> 
    <ItemTemplate> 
     <asp:LinkButton 
      ID="getDetails" 
      runat="server" 
      Text='<%# Eval("NAME") %>' 
      CommandName="cmd" 
      CommandArgument='<%# Eval("Empid") %>' 
      > 
      </asp:LinkButton> 
    </ItemTemplate> 
</asp:Repeater> 

ItemCommandイベントのハンドラ、

protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e) 
{ 
    if (e.CommandName == "cmd") 
    { 
     Session["empid"]=e.CommandArgument; 
     Response.Redirect("~/page1.aspx"); 
    } 
} 
+0

ありがとうAVD。私はこのソリューションを試して、それは働いた。クエリ文字列で複数の値を送信することは可能ですか?ページ内の複数のテーブルを更新する方法を教えてください。私はパッケージを参照するリピータコントロールを持っていますが、読み取り専用です。次のセクションは詳細ビューですが、更新可能です。 – user728148

1

あなたは新しいページへの直接しようとしている場合、それは通常、標準ハイパーリンクがクエリ文字列に同じ形式へのポストバックをEMPLID送信しないので、LinkBut​​tonコントロールはおそらく行く方法でしょうではありません作業。新しいページで、Request.Querystring("emplid")を使用してクエリ文字列からemplidを取得します。複数のテーブルに保存する場合は、トランザクションスコープ内で複数のdb更新呼び出しをラップする方法がいくつかあります。

+0

おかげでデビッド。私は、標準のハイパーリンクコントロールを使用しようとします。同じページへのポストバックの意味を教えてください。ページ内の複数のテーブルの場合、グリッドビュー/データリストに表示できますか?私は基本的に、従業員のためにいくつかのデータを表示し、ユーザーが他のいくつかのセクションのデータを入力できるようにしたいと考えています。私は.NETを学んでいるので、これらの簡単な質問です。 – user728148

+0

はい、ほとんどのサーバー側のコントロール()は、同じページに別のページにポストバックするように設計されています。あなたがコードの背後にある "イベント"は、自分自身への投稿をしているページからです。私は2番目の質問を理解しているかどうかわかりません。はい、それぞれのテーブルにグリッドビュー/データリストを持たせることができます。 – BlackICE

関連する問題