获取具有相同类的Textboxes的值数组

时间:2010-04-16 06:28:57

标签: asp.net javascript jquery

我为动态TextBox的数组(输入为HTML)设置自定义CSS类

所以...现在我需要得到它的数组:

<input type="text" style="width: 50px;" class="DynamicTB" id="ctl00_ContentPlaceHolder1_GridView1_ctl02_id" readonly="readonly" value="1" name="ctl00$ContentPlaceHolder1$GridView1$ctl02$id">

确定客户端并不真正知道输入的数量。这就是我使用课程的原因,这就是我想要做的:

        $.each( { id : $("input.DynamicTB").css("value") }, 
        function(id){
            CallPageMethod("SelectBook", success, fail, "id",id);
        });

我不确定这个$(“input.DynamicTB”)。css(“value”)是否正常:(但

  1. 如何将整个数组值传输到SelectBook方法?

  2. 我的javascript很糟糕,我的调试器 不要告诉我javascript错误但是 它只是不起作用因为 每个人都有问题。

  3. 而且......最后我只需要获取动态文本框的值数组并将它们传输到服务器端...... mt [WebMethode]无法看到服务器端:(

    [Web.Services.WebMethod]
    public static SelectBook(id : array) : string
    {
        id
    }
    

    我确定我不知道如何在这里使用jQuery .live和绑定。

    好的...现在问题解决了,这是我做XD的最终方式

    Page:

          <script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script>
      <script type="text/javascript">
          function CallPageMethod(methodName, onSuccess, onFail) 
          {
                var args = '';
                var l = arguments.length;
                if (l > 3)
                {
                    for (var i = 3; i < l - 1; i += 2) 
                    {
                        if (args.length != 0) args += ',';
                        args += '"' + arguments[i] + '":"' + arguments[i + 1] + '"';
                    }
                }
                var loc = window.location.href;
                loc = (loc.substr(loc.length - 1, 1) == "/") ? loc + "Report.aspx" : loc;
                $.ajax
                ({
                    type: "POST",
                    url: loc + "/" + methodName,
                    data: "{" + args + "}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: onSuccess,
                    fail: onFail
                });
            }
    
            function select() {
    
                var values = new Array();
                $("input.DynamicTB").each
                    (
                    function(i) {
                        values[i] = $(this).val();
                    }
                    );
    
                    var valuesG = new Array();
                    $("input.DynamicTBG").each
                    (
                    function(i) {
                        valuesG[i] = $(this).val();
                    }
                    );
    
                CallPageMethod("SelectBook", success, fail, "values", values, "valuesG", valuesG);
            }
    
      function success(response)
      {
        alert(response.d);
      }
    
      function fail(response)
      {
        alert("&#1054;&#1096;&#1080;&#1073;&#1082;&#1072;.");
      }
      </script>
    

    添加代码:

      unless (GridView1.Rows.Count==0)
      {
        mutable ts=GridView1.Rows[0].Cells[0].Text.Split(':'); 
        mutable first=true;
        mutable cntrl=ts[1];
        foreach(index with row = GridView1.Rows[index] in [0..GridView1.Rows.Count-1])
        {
          unless (first) 
          ts=row.Cells[0].Text.Split(':');
          unless (ts.Length==1)
          {
          if (ts[1]==cntrl && !first)
          {
            row.Cells[0].Text=ts[0];
          }
          else
          {
          row.Cells[0].Text="";
          row.Cells[0].Controls.Add
                    ({
                       def TB = TextBox(); TB.EnableViewState = false;
                       unless(row.Cells[0].Text == "&nbsp;")
                       {
                         TB.Text = ts[0];
                       }
                       TB.Visible=true;
                       TB.ID="id"+TB.ClientID;
                       TB.Width = 50;
                       TB.CssClass="DynamicTB";
                       TB
                    });
          row.Cells[0].Controls.Add
                    ({
                       def TBQ = TextBox(); TBQ.EnableViewState = false;
                       unless(row.Cells[0].Text == "&nbsp;")
                       {
                         TBQ.Text = cntrl;
                       }
                       TBQ.Width = 50;
                       TBQ.Visible=true;
                       TBQ.CssClass="DynamicTBG";
                       TBQ
                    });
        }
        when(first) first=false;
        cntrl=ts[1];
        }
        }
      }
    

    活动代码:

        [Web.Services.WebMethod]
    public static SelectBook(values : string, valuesG : string) : string
    {
        def vals = values.Split(',');
        def valsG = valuesG.Split(',');
        SQLModule.UpdateAdvCode(vals, valsG)
    }
    

    SQL代码:

        public static UpdateAdvCode(vals : array[string], valsG : array[string]) : string
        {   
            conn.Open();
            foreach(i in [0..vals.Length-1])
                unless (vals[i]=="" || vals[i]=="&nbsp;")
                { 
                    def cmd = SqlCommand("UPDATE CfgGIS SET AdvCode='"+vals[i]+"' WHERE ID_GIS="+valsG[i], conn);
                    try
                    {
                        _=cmd.ExecuteNonQuery();
                    }
                    catch
                    {
                       | e is Exception => return e.ToString();
                    }
                }
            conn.Close();
            "Updated"
        }
    

    是的......我仍然需要修复添加代码LOL

    顺便说一下:这本书是谎言,没有书:P只是保存原名手册中的名字

1 个答案:

答案 0 :(得分:4)

var values = [];
$("input.DynamicTB").each(function(){
  values.push( $(this).val() ); // this is the value of each textbox 
})

值现在是一个包含文本框所有值的数组...