ASP.NET Кнопка для обновления свойств и отображения jQuery Modal - PullRequest
0 голосов
/ 04 сентября 2010

У меня есть следующий код ASP.NET:

<div id="panelIssue" runat="server" style="width: 450px; height: 320px;">
    <gsl:IssueUC ID="ucIssue" runat="server" 
        OnItemSaved="ucIssue_ItemSaved" 
        OnItemCancelled="ucIssue_ItemCancelled" />
</div>

, а затем на странице есть кнопка asp:, которая просто вызывает некоторые методы и устанавливает некоторые свойства пользовательского элемента управления, например

protected void btnNewIssue_Click(object sender, EventArgs e) {
    ucIssue.ChangePanelMode(PanelModeEnum.Add);
    ucIssue.FirmID = Convert.ToInt32(Page.Session["FirmID"]);
    ucIssue.loadObject();
}

Я знаю, что могу использовать div, чтобы показать модальное диалоговое окно jquery, но вопрос в том, как установить свойства usercontrol и вызвать их методы? Я также могу оценить другой подход (например, изменение пользовательского контроля).

Заранее спасибо Lorenzo

1 Ответ

0 голосов
/ 04 сентября 2010

Что я могу предложить, так это то, что в событии click после настройки свойств элемента управления вы можете создать фрагмент javascript, который будет создавать и отображать модальный режим, когда страница завершит загрузку при достижении клиента.Попробуйте что-то вроде следующего фрагмента (не проверено, может потребоваться небольшая настройка для работы, но я надеюсь, что вы поняли основную идею):

protected void btnNewIssue_Click(object sender, EventArgs e) {
    ucIssue.ChangePanelMode(PanelModeEnum.Add);
    ucIssue.FirmID = Convert.ToInt32(Page.Session["FirmID"]);
    ucIssue.loadObject();

    //emit client script that will create and show the modal dialog
    ClientScriptManager clientScriptManager = Page.ClientScript;
    string scriptText = "$(document).ready(\n" +
                            "function() {\n" +
                                "$('#panelIssue').dialog({\n" +
                                    "autoOpen: false,\n" +
                                    "modal: true,\n" +
                                    "width: 450,\n" +
                                    "height: 320,\n" +
                                    "title: \"Some title\",\n" +
                                    "resizable: false,\n" +
                                    "draggable: false });\n" +
                                "$('#panelIssue').dialog('open');\n" +
                            "});";
    clientScriptManager.RegisterClientScriptBlock(this.GetType(), "MyScript", scriptText, true);
}

Вам также следует рассмотреть возможности создания диалоговв jQuery, чтобы увидеть, какие другие настройки будут лучше соответствовать вашему сценарию.Я просто использовал несколько параметров, которые у меня есть в моем примере.

...