просто можно добавить ограниченный динамически пользовательский контроль в панели обновления - PullRequest
1 голос
/ 24 сентября 2011

Извините за проблемы с языком: D

Я написал код ниже, и у меня нет проблем с этим, но я могу добавить более 6 пользовательских элементов управления (DriverInfo.ascx) динамически.

Я пробовал более простой код с одним текстовым полем вместо пользовательского элемента управления, но он не работает для более чем 30 текстовых полей. Я не знаю, в чем проблема и запутался. в чем проблема?

AddDynamicDriver.ascx:

<%@ Control Language="C#" AutoEventWireup="true" 
    CodeBehind="AddDynamicDirver.ascx.cs"
    Inherits="Terminal.UI.TransportCo.WebControls.AddDynamicDirver" %>
<div dir="rtl">
    <asp:UpdatePanel ID="UpdatePanel" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
           <asp:Panel ID="Panelmain" runat="server">
           </asp:Panel>
           <asp:Button ID="AddDriver" runat="server" Text="adddriver" 
               onclick="AddDriver_Click" />
        </ContentTemplate>
    </asp:UpdatePanel>
</div>

addDynamicDriver.ascx.cs:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        Session["DynamicDriverNumber"] = 1;
        LoadCreatedControl();
    }
}

private void LoadCreatedControl()
{
    var number = (int)Session["DynamicDriverNumber"];
    for (int i = 1; i <= number; i++)
    {
        var driver = new Control();
        driver = LoadControl("DriverInfo.ascx");
        driver.ID = "Driver" + i;
        Panelmain.Controls.Add(driver);
        Panelmain.Controls.Add(new LiteralControl("<hr/>"));
    }

public void AddDriver_Click(object sender, EventArgs e)
{
    var number = (int)Session["DynamicDriverNumber"];
    number++;
    Session["DynamicDriverNumber"] = number;
    LoadCreatedControl();
}

Это проблема Firefox, так как она работает в IE. Почему?!

1 Ответ

0 голосов
/ 25 сентября 2011

Вам необходимо вызвать метод Update() после изменения содержимого UpdatePanel обработчиками событий обратной передачи.

...