ICallbackEventHandler-->서버 리턴 이벤트
1. C# 코드
public partial class CompCourseOrder_Edit : System.Web.UI.Page, ICallbackEventHandler
{
protected void Page_Load(object sender, EventArgs e)
{
}
//
private void BindingData()
{
List<CompCourseBooking> listBooking = BookingSRV.GetCompCourseBookingListByOrderID(HttpContextUtility.GetCurrentDataItemID());
this.rep_edit.DataSource = listBooking;
this.rep_edit.DataBind();
foreach (RepeaterItem item in this.rep_edit.Items)
{
DropDownList ddlTeacher = item.FindControl("ddl_Teacher") as DropDownList;
ddlTeacher.DataBind(listTeacher, t => t.NameEN, t => t.ID.ToString());
ddlTeacher.Items.Insert(0, new ListItem("<- ->", ""));
ddlTeacher.Attributes["onchange"] = "onChangeBooking(" + item.ItemIndex + ");";
GroupDownList gdlCenterRoom = item.FindControl("gdl_CenterRoom") as GroupDownList;
gdlCenterRoom.OnClientChange = "onChangeBooking(" + item.ItemIndex + ");";
gdlCenterRoom.DataSource = listRoom.Select(t => { return new { GroupTextField = t.CenterName, DataValueField = t.ID.ToString(), DataTextField = t.RoomName }; }).ToList();
gdlCenterRoom.GroupTextField = "GroupTextField";
gdlCenterRoom.DataTextField = "DataTextField";
gdlCenterRoom.DataValueField = "DataValueField";
gdlCenterRoom.DataBind();
DatePicker dateBookingDate = item.FindControl("date_StartBookingDate") as DatePicker;
dateBookingDate.OnClientChange = "onChangeBooking(" + item.ItemIndex + ");";
}
}
#region
string returnValue = string.Empty;
public string GetCallbackResult()
{
return this.returnValue;
}
public void RaiseCallbackEvent(string eventArgument) //
{
this.returnValue = "ABCD";
}
#endregion
}
2. HTML 코드:
<asp:Repeater runat="server" ID="rep_edit">
<ItemTemplate>
<tr class="row" onclick="OnSelected_DataRow(this)" onmousemove="OnMouseOver_DataRow(this)"
onmouseout="OnMouseOut_DataRow(this)">
<td style="text-align: center">
<%#Container.ItemIndex+1 %>
<asp:HiddenField ID="txt_CompCourseBookingID" runat="server" Value='<%#Eval("td0")%>' />
</td>
<td>
<%#Eval("td1")%>
</td>
<td style="text-align: center;">
<span id="TimeRand_<%#Container.ItemIndex %>">
<%#Eval("td7")%></span>
</td>
<td style="text-align: center;">
<%#Eval("td11")%>
</td>
<td>
<span style="color: Red" id="rowValideInfo_<%#Container.ItemIndex %>">
<%#Eval("td9")%></span>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
3. 자바스크립트:
<script language="javascript" type="text/javascript">
function onChangeBooking(rowIndex) {
var prefix = "<%=rep_edit.ClientID%>";
var compCourseBookingID = document.getElementById(prefix + "_txt_CompCourseBookingID_" + rowIndex).value;
var teacherID = document.getElementById(prefix + "_ddl_Teacher_" + rowIndex).value;
var roomID = document.getElementById(prefix + "_gdl_CenterRoom_" + rowIndex).value;
var bookingDate = document.getElementById(prefix + "_date_StartBookingDate_" + rowIndex).value;
if (bookingDate=="" || teacherID=="" || roomID=="")
{
return;
}
var args = compCourseBookingID+","+roomID +","+teacherID + "," + bookingDate;
//alert(args);
<%=this.Page.ClientScript.GetCallbackEventReference(this, "args", "getChildItemListCallBackOnClient", "rowIndex")%>;
}
function getChildItemListCallBackOnClient(resultValue, context) {
document.getElementById("TimeRand_"+context).innerHTML=resultValue.split(';')[0];
document.getElementById("rowValideInfo_"+context).innerHTML=resultValue.split(';')[1];
}
</script>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.