Диалоговый поток поддерживает SSML в текстовых ответах, которые поддерживают элемент
. Это не говорит о том, какова максимальная продолжительность перерыва, но я сомневаюсь, что это будет больше, чем несколько секунд.
Вот решение. Я проверил это в тестовом проекте, и он работает:
ASCX:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="TestControl.ascx.cs" Inherits="WebApplication1.TestControl" %>
<%@ Import Namespace="System.ComponentModel"%>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<cc1:Accordion ID="Accordion1" runat="server" Enabled="True">
<Panes></Panes>
<HeaderTemplate>
<div><asp:Label runat="server" ID="HeaderLabel"><%# Container.DataItem %></asp:Label></div>
</HeaderTemplate>
<ContentTemplate>
<div>
<asp:TextBox ID="textBox" Text='<%# Container.DataItem %>' runat="server"></asp:TextBox>
<asp:LinkButton ID="LinkButton1" Text="Update" CommandName="Update" CommandArgument='<%# Container.DataItem %>'
OnCommand="LinkButton_Command" runat="server"></asp:LinkButton>
</div>
</ContentTemplate>
</cc1:Accordion>
Codebehind:
public partial class TestControl : System.Web.UI.UserControl
{
protected void Page_Init(object sender, EventArgs e)
{
if (!IsPostBack)
{
Accordion1.DataSource = new string[] {"one", "two", "three"};
Accordion1.DataBind();
}
}
protected void LinkButton_Command(object sender, CommandEventArgs e)
{
if (e.CommandName == "Update")
{
TextBox value = ((LinkButton)sender).Parent.FindControl("textBox") as TextBox;
(Accordion1.Panes[Accordion1.SelectedIndex].Controls[0].Controls[1] as Label).Text = value.Text;
}
}
}
Похоже, что в Databinding the Accordion есть некоторые проблемы, которые запутывают работу ваших обработчиков событий. Повторно связывать его каждый раз, когда их как-то сбрасывают.
Кроме того, ваш опубликованный код имеет функцию DataBind (), вызываемую в методе LinkButton_Command, которая происходит после загрузки viewstate. Это приведет к тому, что обновленные данные не будут отображаться до следующей обратной передачи, поскольку новые привязки не будут сохранены в ViewState. Это будет действовать так, как будто он всегда позади.