Search code examples
c#asp.netdynamic-controls

Selecting the shortest item string from dropdownlist in C# Asp.net


I have multiple dynamically generated dropdownlists bound with database. I want the shortest string value to be shown at index 0 in each dropdown.

The sample code is:

DropDownList ddlTemplate = new DropDownList();
ddlTemplate.ID = "ddlTemplate|" + j.ToString();
ddlTemplate.AppendDataBoundItems = true;
ddlTemplate.DataTextField = "TemplateName";
ddlTemplate.DataValueField = "TemplateName";
ddlTemplate.Width = Unit.Pixel(200);
ddlTemplate.AutoPostBack = true;
ddlTemplate.DataSource = null;
ddlTemplate.DataSource = dsMultipleTemplate.Tables[j].DefaultView;
ddlTemplate.DataBind();

If it can be achieved through database query please guide me.

Thanks


Solution

  • As you arnt answering to the comment, maybe you are looking for something like that:

        List<int> stringLength = new List<int> { }; // storing every length
    
        foreach (string entry in ddlTemplate.Items)
        {
            stringLength.Add(entry.Length); // saving each string-length
        }
    
        int index = stringLength.FindIndex(a => a == stringLength.Min()); // get index of lowst length
        ddlTemplate.SelectedIndex = index; // set selected value to index from above
    

    This way, your item wouldnt be at index 0, but it would be selected. Placing it to index 0 is very basic. I guess you can do this on your own.