透過實際代碼觀察控件生命週期。頁面包含 GridView,使用 TemplateField 定義 TextBox 雙向繫結(Bind),並有儲存按鈕觸發 Button1_Click。
<asp:GridView ID="GV" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:TextBox ID="tbName" runat="server" Text='<%# Bind("Name") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Age">
<ItemTemplate>
<asp:TextBox ID="tbAge" runat="server" Text='<%# Bind("Age") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Button ID="Button1" runat="server" Text="Save" OnClick="Button1_Click" />
關鍵觀察點:Bind 表達式在 DataBind 階段單向讀取,Postback 時 GridView 自動提取控件值更新資料源。Button1_Click 執行時,資料已同步回 DataSource,可直接持久化。理解這一流程,能避免常見的「值丟失」或「重複繫結」問題。