2011-12-22 13 views
1

C#コード内に動的なボタンを作成しましたが、button.textに値を割り当てましたが、問題はbuttn_Clickイベントでその値に関連する詳細を表示したいのです。だからどのような考え方これを行うには?動的ボタンから値を取得する方法

protected void Page_Load(object sender, EventArgs e) 
{ 
    for (int i = 0; i < list.Count; i++) 
    { 
     lnk1 = new Button(); 


     VW obj1 = list[i]; 


     lnk1.Text = " "+obj1.ticketNo+":  "+obj1.subject+":  "+obj1.qu; 
     lnk1.Click += new EventHandler(lnk1_Click); 
    } 
} 

私はチケットのように、次のページにobj1.ticketno言及した上で表示する:いくつかの値が

答えて

1

を選択されているあなたは、イベントハンドラのsenderパラメータを使用して、ボタンへの参照を取得し、唱えられます値をButton型に設定します。

0

lnk1_Clickイベントハンドラでは、送信者を[種類]にタイプキャストしてリンクテキストを取得してリンクを取得できます。これを使用すると、クリックが完了したチケット番号を取得できます。このような

何か:ここ

void lnk1_Click(object sender) 
{ 
    Button clickedLinkButton = sender as Button; 
    String buttonText = clickedLinkButton .Text; 
    String clickedTicketNumber = 
            buttonText 
            .SubString(0, buttonText.IndexOf(':')) 
            .Trim();"  
} 
+0

MaheepのおかげでたくさんMaheepこのlnk1_Clickで本当に役立つ – user1111351

+0

こんにちはMaheep、(オブジェクト送信者)があるIもう2つの動的ボタンを作成していますが、button.Click + = new EventHandler(button_Click)のようなイベントを作成しています。上記と同じですが、また盛り上がった出来事ですが、それはまったくトリガーではありません。私は、親動的ボタンイベントによって作成されたデータが消えてもそれをトリガーリングしていないと私はクリックしてください(私は、イベントの送信者、EventArgs e){Response.redirect( "some url"); – user1111351

0

は、サンプル・コード・セグメントである

protected void lnk1_Click(object sender, EventArgs e) 
{ 
     Button bt = sender as Button; 
     bt.Text; 
} 
0
you can use GridView or Repeater and in Iteme Template you can put button. and bind perticular grid or repeater. 

    <asp:repeater runat="server" id="rpt"> 

    </ItemTemplate> 
    <asp:LinkButton runat="serevr" ID="lbtnLInkButton" CommandArgument='<%#Eval("ID") %>' CommandName="Edit" OnClick="lbtnLInkButton_Click">"+<%#Eval("ticketNo")%> <%#Eval("subject")%> <%#Eval("qu")%> 
    </ItemTemplate> 
    </asp:repeater> 


    Bind This Repeater to Datatable or make Dummy DataTable and bind it. 


      DataTable dt = new DataTable(); 
      dt.Columns.Add("ticketNo"); 
      dt.Columns.Add("Subject"); 
      dt.Columns.Add("qu"); 

    for (int i = 0; i < list.Count; i++) 
     { 

     dt.Rows.Add(new object[] { "Ticket Number Value", "Subject Value", "qu Value"}); 

    } 

    rpt.DataSource = dt; 
    rpt.DAtabind(); 

You can get button event like this 

    protected void lbtnLInkButton_Click(object sender, EventArgs e) 
     { 
      int i = Convert.ToInt32(((LinkButton)sender).CommandArgument); 

     } 



***Note : I have writtern the code extempore and not rested it on Visual Studio so there May be Some Spelling Mistakes.** 
+0

には他の方法があります。 – user1111351

+0

はusercontrolのボタンですか、実行時にaspxページに作成しましたか? –

関連する問題