为临时文本框创建唯一 ID

Creating unique ID's for temporary textboxes

我是编程界的新手,在我的应用程序中遇到 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) 或自动递增,但我不知道如何使用它们。

希望大家有答案或其他选择!

Guid.NewGuid().ToString(n) or auto increment

Guid.NewGuid()

createDiv.ID = Guid.NewGuid().ToString();
tb_name.ID= Guid.NewGuid().ToString();

通过索引自动递增

createDiv.ID = "createDiv-" + i;
tb_name.ID = "createTextBox-" + i;

希望对您有所帮助。

如果您想要快速的临时修复,请尝试使用增量值 i 本身,因为它会遍历所有数据库行,所以它肯定是唯一的。

如果您有其他文本框,或者您想要其他方法,请尝试设置一个简单的全局变量 private int idCounter = 0;,然后每次创建新文本框时,将其 ID 设置为 idCounter,然后立即调用 idCounter++;