我在编程领域很陌生,在我的应用程序中遇到ID问题。我有一个带有船只的数据库,对于数据库中的每艘船,我的代码将创建一个带有文本框的div(我想在其中放置来自数据库的船的名称)。但是每个文本框都必须有一个唯一的ID来从数据库中写入数据。
这是我的代码:
for (int i = 0; i < count; i++)
{
System.Web.UI.HtmlControls.HtmlGenericControl createDiv =
new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
createDiv.ID = "createDiv";
this.Controls.Add(createDiv);
TextBox tb_name = new TextBox();
tb_name.ID = **"CreateT1";**
createDiv.Controls.Add(new LiteralControl
("<div class='form-group'><div class='clearfix' ></div><div class='row'><div class='col-md-3'></div><div class='col-md-3'> Schipnaam: <input type='text' **id='CreateT1'** runat='server'/></div></div></div>"));
文本框的ID现在是CreateT1,但我希望它是唯一的并生成。我听说我的选项是:Guid.NewGuid()。ToString(n)或自动增量,但我不知道如何使用它们。
希望你们有答案或其他选择!
答案 0 :(得分:2)
如果您想要快速和临时修复,请尝试使用增量值i
本身,因为它会遍历所有数据库行,因此它肯定是唯一的。
如果您有其他文本框,或者想要其他方式,请尝试设置一个简单的全局变量private int idCounter = 0;
,然后每次创建新文本框时,将其ID
设置为idCounter
之后立即致电idCounter++;
。
答案 1 :(得分:1)
Guid.NewGuid()。ToString(n)或自动增量
Guid.NewGuid()
createDiv.ID = Guid.NewGuid().ToString();
tb_name.ID= Guid.NewGuid().ToString();
通过索引自动增量
createDiv.ID = "createDiv-" + i;
tb_name.ID = "createTextBox-" + i;
希望它有所帮助。