Избегайте обновления страницы sh после запуска ImageClickEventHandler - PullRequest
1 голос
/ 27 мая 2020

У меня есть ImageButton, который будет отображать календарь после щелчка. Я хочу остановить обновление страницы sh при нажатии ImageButton, но я пробовал несколько способов, и ни один из них не работает. Можно ли избежать обновления страницы sh и просто отображать календарь после нажатия кнопки изображения?

Вот мой c# код

TableRow first = new TableRow();
TableCell four = new TableCell();
ImageButton btnDateToggle = new ImageButton();
btnDateToggle.ID = $"btnDateToggle_{j}";
btnDateToggle.ImageUrl = "images/icon2.gif";
btnDateToggle.Click += new ImageClickEventHandler(BtnDateToggle_Click);
Calendar dateddl = new Calendar();
dateddl.ID = $"dateddl_{j}"
dateddl.Width = 250;
dateddl.Visible = false;
dateddl.SelectionChanged += new EventHandler(Dateddl_SelectionChanged);
four.Controls.Add(btnDateToggle);
four.Controls.Add(dateddl);
first.Cells.Add(four);
tasksTable.Rows.Add(first);
ChildPane.ContentContainer.Controls.Add(tasksTable);
ChildAccordion.Panes.Add(ChildPane);
ParentPane.ContentContainer.Controls.Add(ChildAccordion);
MasterAccordion.Panes.Add(ParentPane);
MyContent.Controls.Add(MasterAccordion);

ChildPane и ParentPane являются объектом AccordionPane . ChildAccordion - это объект-аккордеон

protected void BtnDateToggle_Click(object sender, EventArgs e)
{
    string btnDateToggleID = ((Control)sender).ID;
    string index = btnDateToggleID.Substring(btnDateToggleID.IndexOf('_') + 1);
    Calendar dateddl = (Calendar)FindControlRecursive(Page, $"dateddl_{index}");
    dateddl.Visible = !dateddl.Visible;
}
protected void Dateddl_SelectionChanged(object sender, EventArgs e)
{
    Calendar dateddl = (Calendar)sender;
    string dateddlID = dateddl.ID;
    string index = dateddlID.Substring(dateddlID.IndexOf('_') + 1);
    TextBox textBox = (TextBox)FindControlRecursive(Page, $"txtDate_{index}");
    dateddl.Visible = false;
    textBox.Text = dateddl.SelectedDate.ToShortDateString();//.ToString("MM/dd/yyyy");
}

Вот мой код на стороне клиента (.aspx)

<asp:Content ID="Content1" runat="server">
<div>
    <asp:Panel ID="MyContent" runat="server">  
        <ajaxToolkit:Accordion  ID="MasterAccordion" runat="server"> </ajaxToolkit:Accordion>
    </asp:Panel>  
</div>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...