0

I'm pretty new in the programming world and having a problem with ID's in my application. I have a database with ships and for every ship in the database, my code will create a div with a textbox (where i want to put the name of the ship that comes from the database). But every textbox has to have a unique ID to write data to it from the database.

Here is my code:

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>"));

The ID of the textbox isnow CreateT1, but i want it to be unique and generated. I have heard that my options are: Guid.NewGuid().ToString(n) or auto increment but i have no idea how to use them.

Hope you guys have the answer or other options!

Rico Brouwer
  • 81
  • 1
  • 12
  • You could use the [unix timestamp](http://stackoverflow.com/questions/17632584/how-to-get-the-unix-timestamp-in-c-sharp) as the id. – Timo Aug 25 '16 at 09:27

2 Answers2

2

If you want a quick and temporary fix, try using the increment value i itself, since it iterates over all your database rows, so it will definitely be unique.

If you have other textboxes, or you want an alternative way, try setting a simple global variable private int idCounter = 0; and then every time you make a new textbox, you set its ID to idCounter, and call idCounter++; immediately afterwards.

Keyur PATEL
  • 2,299
  • 1
  • 15
  • 41
1

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

Guid.NewGuid()

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

Auto increment via index

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

Hope it helps.

Bruce Chen
  • 18,207
  • 2
  • 21
  • 35