ASP.NETは、まだ駆け出しだ。何が困るって、適切なマニュアルが無い事だ。Helpをひも解いても、例文も無い。あれでは、単語を並べた単なる表だ。その表からは、何もわからない。この辺は、VB6.0のHelpを踏襲すべきだ。
Web Developerで使うBasicもVisual Basic NET と比べると、同じ2010シリーズでも、やはり単語が違う。9月にVisual Basic NET を始めた新参者には、別の言語の様に映る。
だが、ASP.NETのデザインとコードの分離は、徹底してると思う。PHPやJavaでは、組みずらい事が、始めたばかりの新参者でも組める。このBasicに馴れれば、大きなシステムでも組めそうな予感がする。分離される事で、見た時に、間違いも分かり易いし、他人のプログラムも良い所取り出来そうだ。サンデープログラマーとすれば、そこが大事な所だ。
と言う事で、アンケートの例を頭に描き、使い勝手を調べた。部品の配置は、Panelを使うと良さそうだ。まず、Panelを幾つか配置する。その中に部品を入れる。部品は、PanelのプロパティーでHorizontalAlignを使ってPanel内の位置を決める。10月15日のブログのレイアウトもPanelで試してみると、ちゃんと機能する。だが、Panelの言う事を聞く部品と知らん顔の部品がある。知らん顔する部品は、ソースを開き、Align="center"などと指示をする必要がある。この辺が、まだ未完成なのかな。
以下に、作った画面とコードを掲げる。データベースの問題が片付いていないが、ファイルを使う事で、9月20日の「ApacheでASPを使う」を利用して、Apache上で動作を確認できる。
'Headerの所から抜粋
<head runat="server">
<title></title>
<style type="text/css">
.newStyle1
{
font-size: large;
text-align: center;
color: #0000FF;
}
.newStyle2
{
font-size: small;
color: #00FF00;
}
.secondary
{
float:right;
margin-top:10px;
background-color:#f9cfba;
height:70px;
}
.primary
{
float:left;
margin-top:10px;
background-color:#c7d5ed;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<asp:Panel ID="Panel1" runat="server" CssClass="newStyle1">
アンケートの収集(模擬Webパネル)<br /> 内容は、何も無いよ!<br />
<br />
</asp:Panel>
<asp:Panel ID="Panel2" runat="server">
<asp:RadioButtonList ID="RadioButtonList1" runat="server" align="center"
CssClass="newStyle2">
<asp:ListItem>項目の選択1</asp:ListItem>
<asp:ListItem>項目の選択2</asp:ListItem>
<asp:ListItem>項目の選択3</asp:ListItem>
<asp:ListItem>項目の選択4</asp:ListItem>
</asp:RadioButtonList>
</asp:Panel>
<asp:Panel ID="Panel3" runat="server" HorizontalAlign="Center">
<br />
<asp:Button ID="Button1" runat="server" Text="回答" />
</asp:Panel>
<asp:Panel ID="Panel4" runat="server" Width="610px">
<asp:Panel ID="Panel5" runat="server" Width="200px" CssClass="primary">
Primary</asp:Panel>
<asp:Panel ID="Panel6" runat="server" CssClass="secondary" Width="400px">
Secondary</asp:Panel>
</asp:Panel>
</form>
</body>
'ここからコード
Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
If RadioButtonList1.SelectedIndex <> -1 Then
Dim fileno As Integer
fileno = FreeFile()
FileOpen(fileno, "d:\Express_for_Web\test14\test.txt", OpenMode.Append)
PrintLine(fileno, RadioButtonList1.SelectedIndex.ToString)
FileClose(fileno)
End If
End Sub