2009-07-15 9 views
0

aspコントロールをプログラムで生成するために使用された情報をどのように取得できますか?aspコントロールをプログラムで生成するための情報の取得(クリック時)

たとえば、データベースからユーザオブジェクトのDataTableを取り出し、ページ上に整理して、各雇用者の雇用者の直下にある従業員のリストなどのグループをリストしました。このページでは、各ユーザーのユーザー名をLinkButtonと記載しています。これらの従業員の1人をクリックすると、簡単にページをリダイレクトし、選択したユーザーのUserIdにセッション変数を設定したいと思います(これは簡単ではないようです)。このUserId値を元に戻すにはどうすればよいですか?これらの要素は素晴らしい名前でハードコードされていません(for eachループで生成されます)。以下のコメントから

コード:

Dim lnkbtnPm As New LinkButton ' is my link button. ' 
lnkbtnPm.Text = pmDr.Item("Username") ' where pmDr is my datarow. ' 
lnkbtnPm.CommandArgument = pmDr.Item("UserId")  
lnkbtnPm.CommandName = "CommandNameHere" 
panelToAddControlTo.Controls.Add(lnkbtnPm) 

感謝:)

答えて

2

は、私は、これはあなたがLinkBut​​tonコントロールのCommandNameCommandArgumentプロパティを使用するだろうかと思います。 CommandNameとしてCommandArgumentとしてユーザIDと、適切な文字列を割り当て、イベントハンドラにCommandイベントをフックアップ:

Sub LinkButton_Command(sender As Object, e As CommandEventArgs) 
    ' e.CommandArgument will contain the user id ' 
End Sub 

更新

問題は、イベントハンドラが添付されることはありませんということです。それを行うために使用のAddHandler:

Dim lnkbtnPm As New LinkButton 
lnkbtnPm.Text = pmDr.Item("Username") ' where pmDr is my datarow. ' 
lnkbtnPm.CommandArgument = pmDr.Item("UserId")  
lnkbtnPm.CommandName = "CommandNameHere" 
AddHandler lnkbtnPm.Command, AddressOf LinkButton_Command 
panelToAddControlTo.Controls.Add(lnkbtnPm) 
+0

私はこれをしようとしましたが、サブルーチンは、リンクbuttonisがクリックされたときに呼び出さ表示されません。プログラムでリンクボタンを追加してもrunat = "server"属性が与えられない可能性はありますか? – Chris

+0

どのようにLinkBut​​tonコントロールを追加しますか?それらにイベントハンドラを添付しますか? –

+0

Dim lnkbtnPm As New LinkBut​​tonは私のリンクボタンです。 lnkbtnPm.Text = pmDr.Item( "Username")ここで、pmDrは私のdatarowです。 lnkbtnPm.CommandArgument = pmDr.Item( "UserId")lnkbtnPm.CommandName = "CommandNameHere" panelToAddControlTo.Controls.Add(lnkbtnPm) – Chris

関連する問題