2013-04-29 49 views
0

什麼是最好的控制/我可以用來從數據庫中顯示數據的方式,用戶可以在其中編輯一些數據,而其他數據則不能。 我不需要使用數據網格。 我需要從數據庫中讀取每個數據,並自動進行顯示/編輯控制它..自動對來自數據庫的數據進行顯示/編輯控制

類似:

enter image description here

回答

1
DataTable myTable = myRow.Table; 
foreach (DataColumn nextCol in myTable.Columns) 
{ 
    // filter out Name, Age, ID, Salary 
    // if nextCol is Name, Age, ID, or Salary 
    // continue 

    // add a label and text box for next column 
    Label nextLabel = new Label(); 
    nextLabel.Text = nextCol.Caption; 
    // add next label to your control 

    // add a text box for the next column 
    TextBox nextTb = new TextBox(); 
    // add next text box to your control 

    // assume your table sets up columns as write enabled or read only 
    nextTb.ReadOnly = nextCol.ReadOnly; 

    // keep track of write enabled text boxes - SEE BELOW 
    if (!nextCol.ReadOnly) 
    { 
    dataCols.Add(nextCol.Caption, nextCol); 
    textBoxes.Add(nextCol.Caption, nextTb); 
    } 
} 

你需要跟蹤的是啓用了寫入文本框和它們與表列,以便您可以在用戶關閉對話框時更新數據行。你可以用很多方法來做到這一點。關鍵的是,這可以是兩個Dictionary,每個鍵都由數據欄標題。一個字典包含數據列,另一個字典包含相應的文本框。然後,當用戶關閉對話框時,可以使用文本框值更新列值。

Dictionary<String, DataColumn> dataCols; 
Dictionary<String, TextBox> textBoxes; 
foreach (String nextColName in dataCols.Keys) 
    myRow[dataCols[nextColName]] = (Object)textBoxes[nextColName].Text; 
0

您可以使用jQuery的數據表。它也是可編輯的。

當DataTables Editable插件被初始化時,它將更新,刪除和添加請求發送到服務器端。 JQuery DataTables可編輯插件使用戶能夠選擇和刪除表中的行。當用戶按下刪除按鈕時,AJAX請求會被刪除的記錄的id信息。

編輯單元格的值

編輯單元通過點擊在線完成。當用戶完成編輯時,包含單元格位置和單元格值的AJAX請求將發送到服務器端。

更新請求具有以下參數:

- 編輯後的文本

ID - 被編輯(ID被放置在TR標籤包圍細胞的記錄的編號已被編輯)

ColumnID的 - 已被編輯的單元格的列的位置

columnPosition - 已被編輯的單元格的列的位置(隱藏的列不計算在內)

ROWID - 包含已被編輯

服務器應的單元格的行編號如果單元在服務器端成功更新,則返回單元格的新值或錯誤消息。

代碼初始化jQueryData表

您可以使用此代碼

<script language="javascript" type="text/javascript"> 
    $(document).ready(function() { 
     $('#myDataTable').dataTable().makeEditable(); 
    }); 
</script> 
+0

這對於asp?我使用winform親愛的 – Aan 2013-04-29 12:07:34