簡體   English   中英

重新排列通用列表中的數字

[英]Rearrange the number in a Generic List

我不確定問題的標題是否與問題的內容保持同步。

我有一個下拉列表,數據源是列表List<int>數字; 在“刪除”按鈕上,單擊下拉列表中的數字,然后將其刪除;在“添加”按鈕上,單擊編號添加到下拉列表中。

現在,如果下拉菜單中有1、2、3,並且刪除了1,我希望將數字2和3替換為1和2。我不確定如何執行此操作。 有人可以幫幫我嗎?

   if(!IsPostBack)
    {
     List<int> numbers = new List<int>();
            Session["data"] = numbers;
      rest of other code....
     }

   protected void btnAddDetail_Click(object sender, EventArgs e)
    {
        numbers = (List<int>)Session["data"];
        if (numbers == null) { numbers = new List<int>(); }
        if (numbers.Count!=0)
        {
            int max = numbers.Max();
            numbers.Add(max + 1);
            drpdown1.DataSource = numbers;
            drpdown1.DataBind();
            drpdown1.SelectedValue = numbers.Max().ToString();
            Session["data"] = numbers;

        }
       }
     protected void btnDelete(object sender, EventArgs e)
     {
       numbers = (List<int>)Session["data"];
        int detailIndex = numbers.FindIndex(c => c == Convert.ToInt32      (deleteNo));
        numbers.RemoveAt(detailIndex);
        drpdown1.DataSource = numbers;
        drpdown1.DataBind();
         Session["data"] = numbers;
       }

現在,當我重新綁定下拉列表時,我希望將數字2和3替換為1和2。

如果我了解您要執行的操作,請嘗試使用索引數組:

將這兩個控件放在aspx頁面中:

<asp:DropDownList ID="ddlNumbers" runat="server" />
<asp:Button id="btnRemove" runat="server" />

將此代碼放在您的代碼中:

public ArrayList  Numbers
{
    get
    {
        return (ArrayList)this.ViewState["Numbers"];
    }
    set
    {
        this.ViewState["Numbers"] = value;
    }
}

protected override void OnInit(EventArgs e)
{
    this.btnRemove.Click += new EventHandler(btnRemove_Click);
    base.OnInit(e);
}

void btnRemove_Click(object sender, EventArgs e)
{
    this.Numbers.RemoveAt(Convert.ToInt32(this.ddlNumbers.SelectedValue));
    this.BindList();
}

protected void Page_Load(object sender, EventArgs e)
{
    if (!this.IsPostBack)
    {
        this.Numbers = new ArrayList();
        for (int i = 0; i < 10; i++)
        {
            this.Numbers.Add(i);
        }
        this.BindList();
    }
}

private void BindList()
{
    this.ddlNumbers.Items.Clear();
    for (int i = 0; i < this.Numbers.Count; i++)
    {
        this.ddlNumbers.Items.Add((i + 1).ToString());
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM