QnA
사용언어 (칠해주세요) => (C#,VB) |
사용툴 (VS) : VS2010 |
운영체제 (OS) : Windows/XP |
상세언어(칠해주세요.) => 1) ASP.NET, 2) ASP.NET MVC, 3) ASP.NET AJAX |
안녕하세요.
기초 개념이 없으니까, 어렵네요..ㅎㅎㅎ
일단은 ListView에 넣어 둔 TextBox의 Text가 변경되었을때 이벤트를 잡을려고 합니다.
그래서, aspx화일에
<ItemTemplate>
<tr>
<td><asp:TextBox OnTextChanged="RowChanged" runat="server" ID="txtAgentCode" Text='<%# Eval("AgentCode") %>' /></td>
<td>
<asp:TextBox OnTextChanged="RowChanged" runat="server" ID="txtAgentName" Text='<%# Eval("AgentName") %>' />
</td>
<td><asp:LinkButton ID="lnkEdit" runat="server" CommandName="Edit">Edit</asp:LinkButton></td>
</tr>
</ItemTemplate>
위와 같이 ItemTemplate의 TextBox에 OnTextChanged="RowChanged" 라고 선언을 하고
.cs화일엔 다음과 같이 코딩을 하였는데, 디버그를 아래 위치에 잡고 실행했을때,
화면에서 해당 TextBox에 데이타를 입력을 해도, 이쪽 이벤트로 들어오질 않습니다.
protected void RowChanged(object sender, System.EventArgs e)
{
--> DataGridItem dgi = (DataGridItem)(((Control)sender).NamingContainer);
Label bookidlabel = (Label)dgi.Cells[0].Controls[1];
int bookid = int.Parse(bookidlabel.Text);
if (!bookidlist.Contains(bookid))
{
bookidlist.Add(bookid);
}
뭘 잘못했을까요 ?? 아니면, 다른 방법으로 사용하는 방법이 있는지요. ?
사실, 초보자에겐 가장 좋은게 ListView에서 TextBox를 입혀서, 실재 구현한 셈플이 있으면 너무 좋겠는데요..
그럼, 부탁드립니다.
첫댓글 텍스트 박스에 서버체인지 이벤트를 먹여도 작동하지 않습니다. 강제로 서버로 보내는 이벤트를 하나 더 만드셔야 서버로 가서 텍스트가 변경됬다고 이벤트가 발생하지요. 그래서 여기서는 자바스크립트로 처리하는게 제일 좋습니다. 서버로 갈때는 값을 저장하거나 업데이트할때만..
TextBox 속성에 "AutoPostBack"라는 속성이 있습니다. 그 값을 True로 설정 해주시고 사용해보세요.
<asp:TextBox AutoPostBack="True" OnTextChanged="RowChanged" runat="server" ID="txtAgentName" Text='<%# Eval?("AgentName") %>' />
아~~AutoPostBack을 지정하니까. C#소스에 이벤트가 잡히네요.....고맙습니다...