在Javascript中更改ASP.NET控件ID

在Javascript中更改ASP.NET控件ID,javascript,asp.net,Javascript,Asp.net,我在我的ASP.NET应用程序中有一个表,并向其中动态添加行,每行有一些单元格,每个单元格包括一个文本框,我动态生成所有内容,例如: tc = new TableCell(); TextBox t_total = new TextBox(); t_total.ID = "txtTotal" + dt.Rows[i]["Id"].ToString(); tc.Contro

我在我的ASP.NET应用程序中有一个表,并向其中动态添加行,每行有一些单元格,每个单元格包括一个文本框,我动态生成所有内容,例如:

                tc = new TableCell();
                TextBox t_total = new TextBox();
                t_total.ID = "txtTotal" + dt.Rows[i]["Id"].ToString();
                tc.Controls.Add(t_total);
                tr.Cells.Add(tc);
我为我的文本框设置了一个ID,然后使用这个ID在JavaScript函数中访问这个对象。
如何在JavaScript函数中更改此ID?例如,我的文本框ID最初设置为“txtTotal1000”,然后我将在JavaScript函数中将其ID更改为“txtTotal2000”,这样我就可以使用这个新ID访问它,我该怎么做呢?

您可以使用jQuery进行访问

$("#txtTotal1000").attr('id','txtTotal2000');

这将更改元素的id。

为什么要这样做?它不可避免地会在回邮时破坏某些东西。仅仅因为修改了表单,您甚至可能会出现错误(无效的viewstate)。runtimie几乎肯定会认为这是一种可能的攻击并阻止回发。为什么不直接使用JavaScript中的正确ID?一个更好的选择是,如果您在确定客户端脚本中的ID时遇到问题,因为您无法预测运行时将如何生成ID,可以在这里找到:我有一种情况,我应该更改我的ID,我知道您所说的会困扰我,但我不会在回发后使用数据,我将使用javascript读取数据,是否可以使用javascript更改ID?我不这么认为,但我会等待,看看是否有其他人有想法。就我个人而言,即使你能做到,我也不会为此烦恼。使用已有的技术要比想出一些非标准的东西容易得多。确定ID以便在side脚本中使用自动生成的ID是一个已解决的问题。每个人迟早都会遇到这种需要,处理这种需要的方法已经确立。不允许更改ID。这肯定会让维护程序员更容易。但完全有可能有人知道如何做到这一点。我认为没有足够的信息在此基础上提出更好的方法。在我看来,基本的设计理念似乎存在缺陷。我不知道你是在一个屏幕上工作,客户可以点菜,还是在一个维护屏幕上维护菜单,或者其他什么东西,但是这两种情况中的任何一种都会导致你想要实现的目标的不同方法。我不认为“其他方法”的问题是可以用给定的信息来回答的,我怀疑如果我们有足够的信息,它将不适合该网站。这几乎就像你犯了所谓的“类别错误”——你问了一个错误的问题,是基于对一些基本ASP.NET概念的误解。就像你在问如何制造一辆可以过河的摩托车(你需要的是一艘船,而不是摩托车)。你的背景是.NET还是其他语言?在其他框架中使用的许多概念并不容易应用于.NET。