ソース ---aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;
public partial class Default_Phase7 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {
分類:[ASP.NET]
通常のASP.NETのアプリケーションをAjax化しました。
Ajax化はMicrosoftのAjax Control Toolkitを使用しております。
そこで、テキストボックスとボタンを貼り付け、
テキストボックスのTextChangedイベントで画面の更新処理を行い、
ボタンのClickイベントで画面の確定処理を行っています。
Ajax化をはかる前は、TextChangedイベント⇒Clickイベントと
順番に発生していたのですが、Ajax化をはかり、UpdatePanelに
配置してみたところ、イベントがTextChangedのみになりました。
何故こうなったのかはまったく不明で、また、この動きだと
Clickボタンを押下しているのにClickが反応せずに困っています。
何とか、テキストボックスの確定を行い、
Clickイベントを発生させたいのですが、可能でしょか?
ソース
---aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Default_Phase7 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
_literalDebug.Text += "<br />" + TextBox1.Text;
}
protected void Button1_Click(object sender, EventArgs e)
{
_literalDebug.Text += "<br />Click!";
}
protected void TextBox2_TextChanged(object sender, EventArgs e)
{
Literal1.Text += "<br />" + TextBox2.Text;
}
protected void Button2_Click(object sender, EventArgs e)
{
Literal1.Text += "<br />Click!";
}
}
---aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default_Phase7.aspx.cs" Inherits="Default_Phase7" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>無題のページ</title>
</head>
<body>
<form id="form1" runat="server">
<div style="text-align: left">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
Ajax 版のサンプル<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged" AutoPostBack="True"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" CausesValidation="False" OnClick="Button1_Click" /><br />
<asp:Literal ID="_literalDebug" runat="server"></asp:Literal><br />
<hr style="width: 682px" />
</ContentTemplate>
</asp:UpdatePanel>
通常版のサンプル<br />
<asp:TextBox ID="TextBox2" runat="server" OnTextChanged="TextBox2_TextChanged"></asp:TextBox>
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Button" /><br />
<asp:Literal ID="Literal1" runat="server"></asp:Literal><br />
</div>
<div id="deubg" style="text-align: left">デバックプリント<br />
</div>
</form>
</body>
</html>
<script type="text/javascript">
function debug(str) {
document.getElementById("debug").innerHTML += "<br />" + str;
}
</script>
</script>