2009-08-19 1 views
0

Есть ли способ сделать Response.Write работать в UpdatePanel и не вызывать ошибку приложения по понятным причинам? Или, есть ли способ получить аналогичные результаты, не более одной строки кода в C#?Response.Write, как поведение, когда код выполняется в панели обновления

ответ

2

Вы можете просто поставить буквального управления внутри панели обновления и имеют тот же эффект, используя:

myLiteral.Text += "Some more text!"; 
+0

дерьмо, я подозревал, что. это то, что я делал раньше :-( – craigmoliver

0

Единственный способ получить подобное поведение (слабо похоже) должен поставить метку внутри панели обновления, получает обновленную информацию об этой частичной обратной передаче и устанавливает ее значение для чего-то (для чего требуется только одна строка кода) ... остальная часть страницы просто не обновляется, так что вы ничего не можете сделать.

Почему вы хотите эту функциональность в любом случае?

0

Response.Write не работает с UpdatePanels, но, как сказал Спенсер, вы можете поместить свою информацию в литерал.

Другой вариант - использовать функцию System.Diagnostics.Debug.Assert(), если вы отлаживаете. Преимущества этого являются

  1. вы можете поместить их в своем коде, и они будут составлены из отпуска,
  2. вы можете разместить их в тех местах, где ошибки НЕ ДОЛЖНЫ ВСЕГДА произойти, но выскочишь, чтобы вы знаете, когда они делают (только когда вы отлаживаете), и
  3. ваш код приостановит работу в строке Assert, чтобы вы точно знали, что происходит, когда вы помещаете это Assert.

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

1

Только что это могло быть полезно для других людей.

вы не можете использовать Response.Write или Response.Redirect внутри панели обновления.

Чтобы решить эту проблему, вам необходимо использовать триггер. Это используется, чтобы сделать поездку сервера из внутри панели обновления

<asp:UpdatePanel ID="UpdatePanel9" runat="server"> 
<Triggers> 
    <asp:PostBackTrigger ControlID="btnExcel" /> 
</Triggers> 
<ContentTemplate> 

    ---Your code here 

</ContentTemplate> 

Здесь ControlID кнопка или другое управление. Например, в событии нажатия кнопки вы можете написать текст в ответе.

0

Простым решением этой проблемы я пользуюсь вызовом функции JQuery html(), вызванной вызовом Response.Write() ... Например, скажем, я хочу обновить некоторый HTML-текст внутри UpdatePanel. Я бы сделал что-то вроде этого:

With Response.Write(), было бы просто: Response.Write ("[TextToBeAddedToHTML]");

Но с Jquery его немного сложным, и вы должны включить Jquery библиотеку для сайтов страницы:

ScriptManager.RegisterStartupScript(this, GetType(), "TextUpdate", "$(\"#[ID_OF_HTML_Element]\").html(\"<p>" + [TextToBeAddedToHTML] + "</p>\");", true); 
+0

Почему вы удалили сообщение по адресу http://stackoverflow.com/questions/3872844/how-to-write-response-write-within-update-panel/16384971#16384971? выглядит хорошо.Я просто форматирую сообщение. – nhahtdh

+0

hahaha, мой первый пост, и им нужно найти подходящее место, чтобы надеть его ... :))) –

 Смежные вопросы

  • Нет связанных вопросов^_^