我为动态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”)是否正常:(但
如何将整个数组值传输到SelectBook方法?
我的javascript很糟糕,我的调试器 不要告诉我javascript错误但是 它只是不起作用因为 每个人都有问题。
而且......最后我只需要获取动态文本框的值数组并将它们传输到服务器端...... 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("Ошибка.");
}
</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 == " ")
{
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 == " ")
{
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]==" ")
{
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只是保存原名手册中的名字答案 0 :(得分:4)
var values = [];
$("input.DynamicTB").each(function(){
values.push( $(this).val() ); // this is the value of each textbox
})
值现在是一个包含文本框所有值的数组...