2

asp.net に次のテーブルがあります。

 <table style="width: 98%" id="tblOtherDoc">
    <tr>
       <td style="width: 10; text-align: left;">
          <span">Documents:</span>
       </td>
    </tr>
    <tr>
       <td>
          <asp:HiddenField ID="hidOtherPath" runat="server" Value='<%# Bind("UploadLocationOther") %>' />
          <a href="#" style="font-size: 12px; color: #2014FF; float: left; vertical-align: middle" onclick="uploadNew(this)">Add Other</a> <span style="float: left;">
          <asp:CheckBox ID="cbOther" runat="server" onclick="otherDocsClicked(this)" Checked='<%# Bind("OtherAttached") %>' /></span>
          <a href="#" style="font-size: 12px; color: #2014FF; float: left; vertical-align: middle" onclick="downloadFile(this)" title="docOther">View</a>
        </td>
     </tr>
  </table>

チェックボックスがクリックされるたびに、jquery を使用して新しい正確な行をテーブルに追加します (複数のドキュメントを追加できるようにするため)。

// Add new area for Other Document attachements
    function otherDocsClicked(row) {
        var isChecked = $(row).closest("tr").find("input[type=checkbox][id*=cbOther]").is(':checked');

        if (isChecked == true) {
            var clone = $('#tblOtherDoc tbody>tr:last').clone(true);
            clone.find("input[type='hidden'], select").val("");              
            clone.find("input[type='checkbox'], checked").removeAttr('checked');
            clone.insertAfter('#tblOtherDoc tbody>tr:last');
        }
    }

既に追加されているドキュメントのリストを返すために get を実行するときに、C# を使用してこれらの行を動的に追加する方法を知りたいです。

または、これを行うためのより良い方法があると誰かが考えている場合は、これが私が思いつくことができる唯一の解決策であり、他の何よりも問題を引き起こしているように見えるので、どんな意見でも本当に感謝しています.


2 つの辞書がある場合、一方の一致する項目を他方の項目で上書きし、残りの項目はそのままにしておくにはどうすればよいですか?

開始コードは次のとおりです。

Dictionary<string,object> dest=...;
IDictionary<string,object> source=...;

// Overwrite in dest all of the items that appear in source with their new values
// in source. Any new items in source that do not appear in dest should be added.
// Any existing items in dest, that are not in source should retain their current 
// values.
...

foreachソース内のすべての項目を通過するループで明らかにこれを行うことができますが、C# 4.0 (おそらく LINQ) でこれを行う簡単な方法はありますか?

ありがとう

4

2 に答える 2

2

asp.netテーブルコントロールを使用できます。

テーブルコントロール

例えば。C#コードに行を追加する:

TableRow row = new TableRow();
                TableCell cell = new TableCell();
                cell.Controls.Add(new TextBox());
                row.Cells.Add(cell);
                table.Rows.Add(row);

.aspxページ:

<asp:Table ID="table" runat="server" /> 
于 2012-06-04T19:08:15.517 に答える
0

Kapils の回答を使用しますが、チェックボックスから jquery コードを削除します。jquery を使用して onclick イベントにアタッチします。チェックボックスの詳細で onclick="otherDocsClicked(this)" の代わりに、チェックボックスのクラスを追加します。chkDoSomething を実行してから、次の操作を行います。

$(".chkDoSomething").live('change',function(){
     //your code goes here.
 }

次に、カピルが提案したようにc#で行を追加できるはずであり、jqueryは引き続き起動するはずです

于 2012-06-08T05:43:23.310 に答える