LinqDataSource 및 DataList를 선언적으로 만들고 마크 업에 바인딩했습니다. ItemTemplate과 Edit Template을 만들었습니다.ASP.Net DataList 문제
나는 DataLists onedit 명령과 oncancel 명령을 코드 숨겨진 메소드에 바인딩했습니다.
<asp:DataList ID="MyDataList" runat="server" DataSourceID="LinqDataSource1" RepeatDirection="Horizontal"
Font-Bold="False" Font-Italic="False" Font-Overline="False" Font-Strikeout="False"
Font-Underline="False" HorizontalAlign="Center" RepeatColumns="4"
oneditcommand="MyDataList_EditCommand"
oncancelcommand="MyDataList_CancelCommand"
>
<ItemTemplate>
<div style="margin: 5px;">
<asp:LinkButton Text="Edit" CommandName="Edit" style="float:right" runat="server" />
// Other markup
</div>
</ItemTemplate>
나는 ItemTemplate을에서의 LinkButton을 클릭
, 그것은 다음과 같은 코드를 실행합니다 :protected void DataList_EditCommand(object source, DataListCommandEventArgs e)
{
MyDataList.EditItemIndex = e.Item.ItemIndex;
MyDataList.DataBind();
}
이 잘 작동하고 편집 모드로 전환하여 DataList에서 선택한 항목을 넣습니다. 편집 템플릿 :
<EditItemTemplate>
<div style="margin: 5px;">
<asp:LinkButton Text="Cancel" style="float:right"
runat="server" CommandName="cancel" CausesValidation="false"/>
//other markup
</div>
</EditItemTemplate>
나는이 (중단 점 적중되지 않습니다) 뒤에 코드에서 방법을 발생하지 않습니다, (가) 편집 템플릿에 취소 버튼을 클릭합니다.
의 실행 얻을 결코 취소하지 않을 때 실행해야하는 코드, 그래서 정상적인 읽기 모드로 편집 모드를 다시 종료 할 수 없습니다
protected void MyDataList_CancelCommand(object source, DataListCommandEventArgs e)
{
PhotoDataList.EditItemIndex = -1;
PhotoDataList.DataBind();
}
사람이 이것에 대한 이유를 생각할 수 있는가?
---- UPDATE
내가이 ItemCommand 이벤트에 바인딩 알고있는대로, 작동하지 않습니다 DataList에에 이벤트 바로 두 번째 발사 것 같다, 그리고 가로 챌 거라고 DataListCommandEventArgs.CommandName 속성을 사용하고이를 기반으로 작업을 수행하십시오. 링크 편집 단추를 클릭하면 ItemCommand 메서드가 실행되고 코드 본문은 전혀 나타나지 않지만 두 번째로 링크 편집 단추를 클릭하면 ItemCommand 메서드가 적용되지 않습니다.
안녕하세요 벤 - 브라우저에서 피들러를 두드리면 여기에 무슨 일이 일어나고 있는지 알 수있는 기회가 있습니까? –
첫 번째 명령이 실행 된 후 HTML이 생성 된 것을 보았습니까? 태그의 명령 속성이 여전히 있습니까? –