前端綁定主鍵
<asp:LinkButton ID="LinkButton2" runat="server"
CommandArgument='<%# Eval("CustomerID") %>'
OnCommand="LinkButton2_Command">更改組別</asp:LinkButton>
- 使用 `CommandArgument` 綁定 `CustomerID`。
- 事件改為 `OnCommand`(而非 `OnClick`/`OnClientClick`)。
後端處理
protected void LinkButton2_Command(object sender, CommandEventArgs e) {
string customerId = e.CommandArgument.ToString();
// 根據 customerId 查詢數據庫、彈窗、更新邏輯...
// 示例:打開模態對話框
ScriptManager.RegisterStartupScript(this, GetType(), "openModal",
$"showEditDialog('{customerId}');", true);
}
關鍵點
- `CommandEventArgs.CommandArgument` 直接獲取綁定的字符串值,無需在 `ItemTemplate` 中查找控件。
- 避免使用 `OnClientClick` 返回 `false` 阻止回發,配合 `Command` 事件可同時執行客戶端彈窗與服務端邏輯。
- 若需多參數,`CommandArgument` 可存 JSON 或 `;` 分隔字符串,後端解析。