|
分類:[ASP.NET (C#)]
ASP.net C# 2008
-------------------------------|
| |マシン1|マシン2|マシン3 | 1行
| |-------------------------|
|A |ボタン |ボタン |ボタン | 2行
| |-------------------------|
| |値1 |値2 |値3 | 3行
-------------------------------|
| |マシン4|マシン5|マシン6 | 4行
| |-------------------------|
|B |ボタン |ボタン |ボタン | 5行
| |-------------------------|
| |値4 |値5 |値6 | 6行
-------------------------------|
| |マシン7|マシン8|マシン9 | 7行
| |-------------------------|
|C |ボタン |ボタン |ボタン | 8行
| |-------------------------|
| |値7 |値8 |値9 | 9行
-------------------------------|
以降、全て動的
Test.aspx
----------------------------------------------------------------------
<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="content">
<asp:Table ID="Table1" runat="server">
</asp:Table>
</asp:Content>
----------------------------------------------------------------------
Test.aspx.cs
----------------------------------------------------------------------
public partial class Page_Test : System.Web.UI.Page
{
protected void Page_Init(object sender, EventArgs e)
{
//検索
}
protected void Page_LoadComplete(object sender, EventArgs e)
{
//ライン列(A、B、C・・・)
foreach(var item in ○○.Count)
{
TableRow lineRow = new TableRow();
TableCell lineCell = new TableCell() { RowSpan = 3 }
this.Table1.Rows.Add(lineRow);
lineRow.Cells.Add(lineCell);
//マシン行
foreach(var item in ○○.Count)
{
TableCell machineCell = new TableCell()
lineRow.Cells.Add(machineCell);
}
//**ボタン行**
TableRow buttonRow = new TableRow();
Table1.Rows.Add(buttonRow);
//ボタン行
foreach(var item in ○○.Count)
{
TableCell buttonCell = new TableCell()
buttonRow.Cells.Add(buttonCell);
//ボタンをクリックした時にButton_Clickが呼び出されるようにする
Button button = new Button();
button.Click += new EventHandler(Button_Click);←ここがイベント発動しない
}
//***値行***
TableRow shotRow = new TableRow();
Table1.Rows.Add(shotRow);//行を追加する
//値行
foreach(var item in ○○.Count)
{
TableCell ValueCell = new TableCell()
shotRow.Cells.Add(ValueCell);
}
}
}
protected void Button_Click(object sender, CommandEventArgs e)
{
Button btn = (Button)sender;
//ページに飛ぶ
Response.Redirect(string.Format("address={0}", btn);
}
--------------------------------------------------------------------------
ボタン生成での動的ボタンを作成していて、(2、5、8行)クリックするとページを開くようにしています(新規ページかは問わない)
分からないところはボタンを押してもイベントが発動しないです。
HPによると
ボタン生成するときに配列を作る必要と
書かれているけど下記(ボタン生成するときに配列)の様に書いてみましたが、イベント発動されず。。。
button.ID付ける必要なのかよくわからないです。。。
class numclass
{
public static int numcount;
public static void num()
{
numclass.numcount++;
}
}
protected void Page_LoadComplete(object sender, EventArgs e)
{
〜
〜
Button[] button = new Button[○○.Count];
foreach (var item in ○○.Count)
{
numclass.num();
Array.Resize(ref button, numclass.numcount);//再動的配列
button[numclass.numcount - 1] = new Button();
button[numclass.numcount - 1].Click += new EventHandler(Button_Click);
buttonCell.Controls.Add(button[numclass.numcount - 1]);
}
〜
〜
}
他に、Page_LoadかPage_Initの所じゃないとダメですか?
(Page_LoadCompleteじゃないとテキストボックス検索のときに取得した値が反映されないから作りたくない・・・)
*イベント発動じゃなくてもクリックしてページに飛べばOKです。(既存のマシン、値を取得して新規ページに表示するだけ)
ご教示の程よろしくお願いします。
|