0

データベースから取り込まれたテーブルを含むページがあります。次のようになります。

System   Jan   Feb   Mar   Apr   May   Jun   Jul   Aug   Sep  Oct   Nov   Dec
1        x     x     x     x     x     x     x     x     x    x     x     x
2        x     x     x     x     x     x     x     x     x    x     x     x
6        x     x     x     x     x     x     x     x     x    x     x     x

テーブル内の各セル (上の図の各「x」) には、ユーザーが値を入力する必要があるテキスト ボックスが含まれています。列のタイトルとシステム番号 (たとえば、「feb2」、「mar6」、「oct1」) を使用して、各テキスト ボックスに動的に ID を与えます。

ページの下部には保存ボタンがあり、これを押すと、すべてのシステムとすべての月のデータベースの値が更新されます。

私の問題は次のとおりです。テキスト ボックスの ID を最初に知らなくても、テキスト ボックスの値を取得し、SQL 関数を呼び出して値を更新するにはどうすればよいですか?

これは、jQuery (私がよく知っている言語) でやりたいことの例です。

function saveValues(){
    var rows = $("#SystemTargetsTable tr:not(:first-child)"); // skip the header row
    var systemID;
    var jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec;

    rows.each(function(index) {        
    systemID = $(this).attr('id').substring(6);

    jan = $('#Jan' + systemID).val();
    feb = $('#Feb' + systemID).val();
    mar = $('#Mar' + systemID).val();
    apr = $('#Apr' + systemID).val();
    may = $('#May' + systemID).val();
    jun = $('#Jun' + systemID).val();
    jul = $('#Jul' + systemID).val();
    aug = $('#Aug' + systemID).val();
    sep = $('#Sep' + systemID).val();
    oct = $('#Oct' + systemID).val();
    nov = $('#Nov' + systemID).val();
    dec = $('#Dec' + systemID).val();

    //ONCE I HAVE THE VALUES FOR EACH MONTH I WOULD LIKE TO CALL AN UPDATE STATEMENT USING THE SYSTEM ID. ONLY OF COURSES I CANNOT DO TIS FROM JAVASCRIPT!
  }); 
}  

お時間をいただきありがとうございます。これがすべて理にかなっていることを願っています!

4

2 に答える 2

0

runat = "server"属性とIDを指定して、このテーブルサーバーコントロールを作成します。例:tbl1、次にテーブル行をループします

  for (var i = 0; i<tbl1.Rows.Count; i++)
             {
                 var txtJan = tbl1.Rows[i].FindControl("Jan" + i.ToString()); 

var janValue =txtJan.Text;

             }
于 2012-10-01T16:48:58.613 に答える
0

あなたの場合はシステム列である一意の列のIDを知らずにテーブル行を更新してSQLすることはできません。
これが私がすることです:
テーブルに各行の動的テキストボックスを入力するまでに、テキストボックスのID =その行のシステムID値を割り当てます。

<asp:TextBox ID="System.ID_Value(FromDB)"  value="Month_Value_(value from DB)" runat="server"></asp:TextBox>

then on the click event of the save button 

 protected void Button1_Click(object sender, EventArgs e)
    {
        foreach (var row in Table1.Rows)
        {
            string[] allkeys = Request.Form.AllKeys;
            foreach (string key in allkeys)
            {
                if (key.ToUpper().StartsWith("System_ID"))
                {
                    var ID = Convert.ToInt32(key.Split('_')[1]);           
                }
                if (key.ToUpper().StartsWith("MOnth_Value"))
                {
                    var Jan = Convert.ToInt32(key.Split('_')[2]);
                    var feb = Convert.ToInt32(key.Split('_')[3]);
                }
                // and so on then you call the update method
            }  
        }
    }
于 2012-10-01T17:47:56.543 に答える