在我的asp.net表单中,在表格行中我添加了单元格,在这些单元格中,我添加了一个带有属性的文本框 -
string residentId = (new GUID()).ToString();
string houseId = (new GUID()).ToString();
HtmlTableRow detailRow = new HtmlTableRow();
detailRow.Attributes.Add("residentId", residentId);
detailRow.Attributes.Add("houseId", houseId);
HtmlTableCell dataCell = new HtmlTableCell();
TextBox tb = new TextBox();
tb.Attributes.Add("componentname", "tbMoveInDate");
tb.Attributes.Add("onchange", "updateMoveInDate()";
cell.Controls.Add(tb);
detailRow.Cells.Add(dataCell);
可能性超过100行,当然都有不同的ID。
在我的javascript中我有这个功能 -
function updateMoveInDate() {
var MoveInDateEle = $("[componentname*='tbMoveInDate']");
}
此时,MoveInDateEle是表格中所有这些文本框的集合,
var currentRow = $("[componentname*='tbMoveInDate']").parent().parent();
给了我所有的行。但不是我的特定行。
如何获取我正在使用的特定文本框以及与该控件关联的特定常驻ID和房屋ID?
答案 0 :(得分:2)
像这样修改C#
代码:
tb.Attributes.Add("onchange", "updateMoveInDate(this)";
和js的功能如下:
// obj here refers to the current textbox in the scope
// on which the on-change event had occurred...
function updateMoveInDate(obj) {
var currentRow = $(obj).closest('tr');
}
答案 1 :(得分:1)
你可以做到
tb.Attributes.Add("onchange", "updateMoveInDate(this)";
和
function updateMoveInDate(txt) {
var $txt = $(txt);
var $row = $txt.closest('tr');
var residentId = $row.attr('residentId');
var houseId = $row.attr('houseId');
}
答案 2 :(得分:0)
试试这个
tb.Attributes.Add("onchange", "updateMoveInDate(this)";
中的代码
string residentId = (new GUID()).ToString();
string houseId = (new GUID()).ToString();
HtmlTableRow detailRow = new HtmlTableRow();
detailRow.Attributes.Add("residentId", residentId);
detailRow.Attributes.Add("houseId", houseId);
HtmlTableCell dataCell = new HtmlTableCell();
TextBox tb = new TextBox();
tb.Attributes.Add("componentname", "tbMoveInDate");
tb.Attributes.Add("onchange", "updateMoveInDate(this)";
cell.Controls.Add(tb);
detailRow.Cells.Add(dataCell);
jQuery的:
function updateMoveInDate(args) {
var MoveInDateEle = $(args).closest('tr');
}