Вы используете pivot, чтобы получить identifiers
в столбцах, а затем построить график
pd.pivot_table(df.reset_index(),
index='index', columns='identifier', values='value'
).plot(subplots=True)
[/g0]
И вывод
pd.pivot_table(df.reset_index(),
index='index', columns='identifier', values='value'
)
Похож -
identifier 55 56 57
index
2007-01-01 0.781611 0.766152 0.766152
2007-02-01 0.705615 0.032134 0.032134
2008-01-01 0.026512 0.993124 0.993124
2008-02-01 0.226420 0.033860 0.033860
Да:
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);
А затем:
function endRequestHandler(sender, args)
{
// Do stuff
}
Документация здесь и здесь . Имейте в виду, что это сработает для каждого запроса AJAX на странице.
Это должно добиться цели:
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
prm.add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args)
{
//Jquery Call
}
function EndRequestHandler(sender, args)
{
//Jquery Call
}
</script>
Вот статья о том, как это сделать, используя статический метод ScriptManager RegisterClientScriptBlock. Пробовал и работает как шарм.
http://csharperimage.jeremylikness.com/2009/06/inject-dynamic-javascript-into-aspnet.html
Bruno,
Первый, для ответа на прямой вопрос. В Вашем обратном вызове, который называет панель обновления, необходимо быть в состоянии использовать вызов RegisterStartupScript для вызова метода JS. Тогда в Вашем методе JS, Вы показали бы сообщение, и затем можно использовать, делают a:
setTimeout('$('#myMessage').fadeOut("slow")', 4000);
для имения его исчезают после 4 секунд.
Для движения одного шага вперед, так как Вы уже реализуете JavaScript, я пригласил бы Вас проверять эта статья о UpdatePanels. Если возможно, я попытался бы отправить вызовы Ajax, чтобы сделать Вашу вставку, копирование и редактирование, и это далее упростит Ваши отзывы пользователей и предотвратило бы избыточную информацию через провод.