0

ユーザーが一部のデータを編集でき、残りのデータは編集できないデータベースからのデータを表示するために使用できる最良のコントロール/方法は何ですか? データグリッドを使用する必要はありません。データベースから各データを読み取り、その表示/編集コントロールを自動的に作成する必要があります..

何かのようなもの:

ここに画像の説明を入力

4

2 に答える 2

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);
  }
}

ユーザーがダイアログを閉じたときにデータ行を更新できるように、書き込み可能なテキスト ボックスを追跡し、それらをテーブルの列に関連付ける必要があります。これは、さまざまな方法で行うことができます。一方で、これは 2 つの Dictionary であり、それぞれがデータ列のキャプションによってキー付けされます。1 つのディクショナリにはデータ列が含まれ、もう 1 つのディクショナリには対応するテキスト ボックスが含まれます。次に、ユーザーがダイアログを閉じたときに、列の値をテキスト ボックスの値で更新できます。

Dictionary<String, DataColumn> dataCols;
Dictionary<String, TextBox> textBoxes;
foreach (String nextColName in dataCols.Keys)
  myRow[dataCols[nextColName]] = (Object)textBoxes[nextColName].Text;
于 2013-04-29T11:45:38.393 に答える
0

JQueryデータテーブルを使用できます。それも編集可能です。

DataTables Editable プラグインが初期化されると、Update、Delete、および Add リクエストがサーバー側に送信されます。JQuery DataTables Editable プラグインを使用すると、ユーザーはテーブル内の行を選択して削除できます。ユーザーが削除ボタンを押すと、削除されるレコードの ID の情報を使用して AJAX 要求が行われます。

セル値の編集

セルの編集は、セルをクリックしてインラインで行います。ユーザーが編集を終了すると、セルの位置とセルの値を含む AJAX 要求がサーバー側に送信されます。

更新リクエストには次のパラメータがあります。

value - 編集されたテキスト

id - 編集されたレコードの ID (ID は、編集されたセルを囲む TR タグに配置されます)

columnId - 編集されたセルの列の位置

columnPosition - 編集されたセルの列の位置 (非表示の列はカウントされません)

rowId - 編集されたセルを含む行の ID

セルがサーバー側で正常に更新された場合、サーバーはセルの新しい値を返すか、エラー メッセージを返します。

jQueryData テーブルを初期化するコード

このコードを使用できます

<script language="javascript" type="text/javascript">
    $(document).ready(function () {
         $('#myDataTable').dataTable().makeEditable();
    });
</script>
于 2013-04-29T11:44:25.107 に答える