首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

ASP.NET 累積 TextBox 輸入值至 ViewState 實現掃描槍連續錄入

     編輯:程式設計綜合問答

場景描述

掃描槍掃碼自帶回車,觸發按鈕 Postback。需將每次掃描的條碼追加到字符串,格式如 code1,code2,code3,並在頁面顯示或後續處理。

核心代碼

protected void btnSubmit_Click(object sender, EventArgs e) {
    string sum = ViewState["sum"] as string ?? "";
    if (!string.IsNullOrEmpty(sum)) sum += ",";
    sum += txtBarcode.Text.Trim();
    ViewState["sum"] = sum;
    lblDisplay.Text = sum; // 即時回顯
    txtBarcode.Text = "";  // 清空輸入框聚焦下一次掃描
    txtBarcode.Focus();
}

關鍵點解析

  • ViewState 生命週期:隨頁面 Postback 往返,適合存儲單頁會話級數據,無需數據庫/Session 開銷。
  • 空值處理:首次讀取可能為 null,使用 ?? "" 或 String.IsNullOrEmpty 防御。
  • 分隔符選擇:逗號、分號或換行符,需與後端解析邏輯一致。

擴展建議

  1. 若數據量大(超過 ViewState 大小限制),改用 Session 或臨時表。
  2. 加入驗證:檢查條碼格式、長度、重複性。
  3. 前端 JS 輔助:onkeydown 捕獲 Enter 自動觸發按鈕,提升體驗。

完整頁面片段

<asp:TextBox ID="txtBarcode" runat="server" AutoPostBack="false" />
<asp:Button ID="btnSubmit" runat="server" Text="提交" OnClick="btnSubmit_Click" />
<asp:Label ID="lblDisplay" runat="server" />
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved