自动对数据库中的数据进行显示/编辑控制

时间:2013-04-29 10:51:50

标签: c# .net database winforms controls

我可以使用什么样的最佳控件/方式来显示数据库中的数据,用户可以在其中编辑某些数据而不能编辑其他数据。 我不需要使用数据网格。 我需要从数据库中读取每个数据并自动对其进行显示/编辑控制..

类似的东西:

enter image description here

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

您可以使用JQuery数据表。它也是可编辑的。

初始化DataTables Editable插件时,它会向服务器端发送Update,Delete和Add请求。 JQuery DataTables可编辑插件使用户可以选择和删除表中的行。当用户按下删除按钮时,会发出一个AJAX请求,其中包含已删除记录的id的信息。

编辑单元格值

通过单击来内联编辑单元格。当用户完成编辑时,将具有单元格位置和单元格值的AJAX请求发送到服务器端。

更新请求具有以下参数:

- 已修改的文字

id - 已编辑记录的ID(ID位于围绕已编辑的单元格的TR标记中)

columnId - 已编辑的单元格列的位置

columnPosition - 已编辑的单元格列的位置(不计算隐藏列)

rowId - 包含已编辑的单元格的行的ID

如果在服务器端成功更新了单元格,则服务器应返回单元格的新值,或者出现错误消息。

初始化jQueryData表的代码

您可以使用此代码

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