簡體   English   中英

從用戶控件保存值

[英]Saving values from User Control

我有一個aspx頁面。 pageLoad通話加載用戶控件的方法

protected void Page_Load(object sender, EventArgs e)
{
    LoadUC();
}

這將通過幾個通用值將用戶控件加載到頁面上(放入占位符中)。

private void LoadUC()
{
    ucTS ctrl = (ucTS)Page.LoadControl(_ucTSPath);
    ctrl.ParentId = 0;
    ctrl.addNew = false;
    phFG.Controls.Add(ctrl);
}

用戶控件(包含轉發器)將在初始頁面上加載初始占位符以及另一個占位符:

protected void Page_Load(object sender, EventArgs e)
{
    LoadItems();
}

private void LoadBOMItems()
{
    List<Item> dtItem;

    if (ParentId == 0)
    {
        if (ViewState["ItemFG"] == null)
        {
            dtItem = //Gets list of items
        }
        else
        {
            dtItem = (List<Item>)ViewState["ItemFG"];
        }
        ViewState["ItemFG"] = dtItem;
    }
    else
    {
        if (ViewState["Items" + ParentId] == null)
        {
            dtItem = //get list of items
        }
        else
        {
            dtItem = (List<Item>)ViewState["Items" + ParentId];
        }
        ViewState["Items" + ParentId] = dtItem;
    }

    if (dtItem.Count > 0)

        rptTSItem.DataSource = dtItem;
        rptTSItem.DataBind();              
    }
}

在綁定中,我綁定了轉發器,但我還要添加更多相同的用戶控件。

當我單擊將新項目添加到轉發器時,問題就來了。 初始單擊,一切都保存良好,並添加了新行。 在初始頁上找不到用戶控件的第二次單擊,因此不會觸發save方法。 第三次單擊,一切正常,第四次,未找到用戶控件。 這一直在發生。 為什么不能總是找到我的用戶控件? 我曾嘗試在多個地方進行回發檢查,但這似乎不起作用。

我仍然不是100%知道為什么該事件每隔其他一次就會正確觸發,而不是第一次觸發,但是解決方案只是在用戶控件中添加一個ID。

private void LoadUC()
{
ucTS ctrl = (ucTS)Page.LoadControl(_ucTSPath);
ctrl.ParentId = 0;
ctrl.addNew = false;
ctrl.ID = "someID"
phFG.Controls.Add(ctrl);
}

每當我從用戶控件中重新添加用戶控件時,我都會傳遞相同的ID。

暫無
暫無

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

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