在 ASP.NET DataGrid 中使用 `
<form id="Form1" method="post" runat="server">
<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<input type="radio" name="rdo"
<%# GetChecked(DataBinder.Eval(Container, "DataItem")) %>
value='<%# DataBinder.Eval(Container, "DataItem") %>'>
<asp:Label runat="server"
Text='<%# DataBinder.Eval(Container, "DataItem") %>'
ID="Label1"></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid><br>
<asp:Button id="btnOk" runat="server" Text="確定"></asp:Button>
</form>
' 頁面載入綁定資料
Dim arr As New ArrayList
arr.Add("新聞綜合")
arr.Add("綜藝")
arr.Add("電影")
arr.Add("教育")
arr.Add("戲劇")
arr.Add("軍事")
arr.Add("體育")
DataGrid1.DataSource = arr
DataGrid1.DataBind()
' 確定按鈕取得選中值
Protected Sub btnOk_Click(sender As Object, e As EventArgs)
Response.Write(Request.Form("rdo"))
End Sub
' 判斷是否為當前選中項
Public Function GetChecked(ByVal str As String) As String
If str = Request.Form("rdo") Then
Return "checked"
Else
Return ""
End If
End Function
此技巧雖屬經典 WebForms 時代產物,但理解其原理有助於掌握伺服器控制項與客戶端 HTML 交互的本質,維護舊專案時極具參考價值。