- PR -

ASP.net Ajax atlasについて

1
投稿者投稿内容
ぱぱ
常連さん
会議室デビュー日: 2005/09/01
投稿数: 34
投稿日時: 2007-02-22 16:28
初めまして。
どこをみてもよくわからなかったので投稿させていただきました。
C# 2005でAtlas正式版(ASP.net AJAX)を使用してwebアプリケーションの開発をしています。

処理としましては
UpdatePanelの中にGridViewを配置し
AsyncPostBackTriggerのControlIDにButton1、EventNameにclickを
設定しています。
Button1_Clickの処理はDBにアクセスしデータを取得後、GridViewに
データバインドです。

DBにアクセスした際にデータが取得できなかった場合、alertメッセージを
出力させたいのですがうまく出力されません。
どなたかご存じの方が居ましたら知恵をお貸しください。

protected void Button1_Click(object sender, EventArgs e)
{
DBにアクセス();

if(データが取得できない場合)
{
Type cstype = this.GetType();
Page.ClientScript.RegisterStartupScript(cstype, "Message", "alert('データなし');");
}
else
{
データバインド();
}
}
かめたろ
ぬし
会議室デビュー日: 2003/03/20
投稿数: 255
投稿日時: 2007-02-22 16:41
UpdatePanelの中が書き換わるだけだから、RegisterStartupScriptってしても無意味なんじゃないでしょうか。
ぱぱ
常連さん
会議室デビュー日: 2005/09/01
投稿数: 34
投稿日時: 2007-02-22 16:50
引用:

UpdatePanelの中が書き換わるだけだから、RegisterStartupScriptってしても無意味なんじゃないでしょうか。



そうなんですよね。そこでつまずいていまして・・。
なんとかサーバーサイドからスクリプトを走らせることはできないでしょうか?

それともUpdatePanelを使用しての部分ポストバック?ではサーバーサイドから
スクリプトを走らせるというのは根本的に考え方がおかしいのでしょうか?
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2007-02-22 17:17
Microsoft.Web.UI.ScriptManager
を調べると。。。
_________________
かるあ のメモスニペット
ぱぱ
常連さん
会議室デビュー日: 2005/09/01
投稿数: 34
投稿日時: 2007-02-22 17:29
引用:

Microsoft.Web.UI.ScriptManager
を調べると。。。



AsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e)のことでしょうか?
検討違いでしたらごめんなさい。

あのイベントも試してみたのですが
Exceptionを発生させなければならず断念したのです。

protected void Button1_Click(object sender, EventArgs e)
{
if(データが取得できない場合)
{
throw new ArgumentNullException();
}
}
protected void ScriptManager1_AsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e)
{
this.ScriptManager1.AsyncPostBackErrorMessage = "データなし";
}

直接処理をcallしてもalertメッセージは出力されないし・・。

ScriptManager1_AsyncPostBackError(null,null);

Exceptionを発生させるしかないのでしょうか?
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2007-02-22 17:43
http://ajax.asp.net/docs/mref/T_System_Web_UI_ScriptManager.aspx
を眺めると。。。

RegisterClientScriptBlock(page, type, key, script, addScriptTags)
http://ajax.asp.net/docs/mref/M_System_Web_UI_ScriptManager_RegisterClientScriptBlock_5_0feb167c.aspx

RegisterClientScriptBlock(Control, Type, String, String, Boolean)
http://ajax.asp.net/docs/mref/M_System_Web_UI_ScriptManager_RegisterClientScriptBlock_5_d03cd23f.aspx

_________________
かるあ のメモスニペット
ぱぱ
常連さん
会議室デビュー日: 2005/09/01
投稿数: 34
投稿日時: 2007-02-22 19:21
できました!!

protected void Button1_Click(object sender, EventArgs e)
{
if(データが取得できない場合)
{
ScriptManager.RegisterClientScriptBlock(Button1, typeof(Button), "msg", "alert('データなし');", true);
}
}

かるあ様ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)