FineUI Grid 컨트롤 기반 오른쪽 단추 메뉴 추가
ExtJs 오른쪽 키 메뉴 는 여러 가지 가 있 습 니 다.Grid 컨트롤 에 있어 서 저 는 두 가지 실현 만 간단하게 설명 합 니 다.표 의 데이터 줄 에서 오른쪽 단 추 를 눌 렀 을 때 팝 업 되 는 메뉴 와 빈 위치 에서 오른쪽 단 추 를 눌 렀 을 때 팝 업 되 는 메뉴 입 니 다.
시간 이 제한 되 어 있 으 니 쓸데없는 말 은 그만 하고 두 개의 효과 도 를 먼저 보 자.환경 FineUI 4.1.6,.NET 4.0 구현 컨트롤 의 ID 를 지정 해 야 하기 때 문)
1.데이터 줄 오른쪽 단추 메뉴
2.빈 칸 에서 메뉴 를 우 클릭
실현 방법:
STEP 1:Grid 컨트롤 추가...긴 말 하지 않다
두 번 째 단계:Grid 컨트롤 뒤에 두 개의 Menu 컨트롤 을 추가 합 니 다.각각 실행 할 두 개의 오른쪽 키 메뉴 에 대응 합 니 다.clientIDMode 를 static 로 지정 하고 Hidden 을 true 로 지정 합 니 다.
<f:Menu ID="containerMenu" runat="server" ClientIDMode="Static" Hidden="true">
<f:MenuButton Icon="Add" Text=" " OnClick="OnAddClick"></f:MenuButton>
<f:MenuSeparator />
<f:MenuButton Icon="Reload" Text=" "></f:MenuButton>
</f:Menu>
<f:Menu ID="itemMenu" runat="server" ClientIDMode="Static" Hidden="true">
<f:MenuButton Icon="Pencil" Text=" " OnClick="OnEditClick"></f:MenuButton>
<f:MenuButton Icon="Delete" Text=" "></f:MenuButton>
<f:MenuSeparator />
<f:MenuButton Icon="Reload" Text=" "></f:MenuButton>
</f:Menu>
세 번 째 단계:Grid 에 이벤트"container contextmenu","itemcontextmenu"이벤트 감청 추가
<f:Grid ID="Grid1" runat="server" Title="FineUI Grid Demo" CssStyle="margin: 10px;" AllowPaging="true" PageSize="20"
EnableHeaderMenu="false" EnableColumnLines="true" DataKeyNames="ID" >
<Columns>
.....
</Columns>
<Listeners>
<f:Listener Event="containercontextmenu" Handler="function (grid, e, eOpts) { e.stopEvent(); F('containerMenu').showAt(e.getXY()); }" />
<f:Listener Event="itemcontextmenu" Handler="function (grid, record, item, index, e, eOpts) { e.stopEvent(); F('itemMenu').showAt(e.getXY()); }" />
</Listeners>
</f:Grid>
이 두 사건 은 ExtJs 의 GridPanel 컨트롤 에 속 합 니 다.매개 변 수 는 다음 과 같 습 니 다.container contextmenu:grid:표 대상,e:이벤트 대상,eOpts:이벤트 대상 파라미터;
itemcontextmenu:grid:표 대상,record:선택 한 줄 쌍 상(record.rawdata 속성 을 통 해 선택 한 줄 의 모든 데 이 터 를 얻 을 수 있 습 니 다),item:html 요소 대상,index:줄 색인,e:이벤트 대상,eOpts:이벤트 대상 매개 변수;
다른 궁금 한 점 이 있 으 면 ExtJs 의 Api dochttp://docs.sencha.com/extjs/4.2.1/#!/api/Ext.grid.Panel를 뒤 져 보 세 요.
일반적인 상황 에서 위의 코드 를 그대로 베 끼 면 Ok 입 니 다.이벤트 처리 함수 에 대해 더 많은 요 구 를 하지 않 는 한.
STEP 4:메뉴 기능 구현.정상 적 인 방법 으로 메뉴 버튼 을 연결 하 는 이벤트 만 있 으 면 됩 니 다.특별히 설명 할 것 이 없습니다.
두 번 째 코드 에 서 는 서버 온 클릭 이벤트 바 인 딩 을 추가 하고 수정 단 추 를 추가 한 것 을 볼 수 있 습 니 다.다음은 배경 코드 의 실현 을 살 펴 보 겠 습 니 다.
protected void OnAddClick(object sender, EventArgs e)
{
FineUI.Alert.Show("Add Click!", FineUI.MessageBoxIcon.Information);
}
protected void OnEditClick(object sender, EventArgs e)
{
var selectedrow = Grid1.Rows[Grid1.SelectedRowIndex].DataKeys[0].ToString();
FineUI.Alert.Show(string.Format(" ID {0} ", selectedrow), FineUI.MessageBoxIcon.Warning);
}
FineUI Grid 컨트롤 을 사용 하여 페이지 기능 을 추가 한 다음 전체 페이지 를 높이 채 우 는 방법 입 니 다.구체 적 으로 아래 의 문자 설명 과 코드 분석 을 보십시오.FineUI 컨트롤 을 사용 하 는 모든 페이지 에는 f:PageManager 컨트롤 이 있 습 니 다.속성:AutoSizePanelID,채 워 야 할 컨트롤 ID 를 설정 합 니 다.demo 를 통 해 알 수 있 듯 이 정상 적 인 상황 에서 용기 Panel 을 하나 더 놓 으 면 전체 페이지 를 채 울 수 있 습 니 다.
<f:PageManager ID="PageManager1" runat="server" AutoSizePanelID="ResultSetGrid" />
<f:Grid ID="ResultSetGrid" runat="server" EnableCheckBoxSelect="true" Title="" DataKeyNames="ID"
ShowBorder="false"
PageSize="3"
AllowPaging="true"
IsDatabasePaging="true"
OnPageIndexChange="ResultSetGrid_PageIndexChange"
OnSort="ResultSetGrid_Sort"
AllowSorting="true"
SortField="ID">
<Toolbars>
<f:Toolbar ID="ResultSetGrid_Toolbar" runat="server">
<Items>
<f:Button ID="btnAdd" runat="server" Text=" " OnClientClick="Add();" EnablePostBack="false" Icon="ApplicationAdd"></f:Button>
<f:Button ID="btnEdit" runat="server" Text=" " EnableAjax="true" OnClick="btnEdit_Click" Icon="ApplicationEdit"></f:Button>
<f:Button ID="btnDelete" runat="server" Text=" " OnClick="btnDelete_Click" Icon="ApplicationDelete"></f:Button>
<f:Button ID="btnImport" runat="server" OnClientClick="Import();" Text=" " Icon="ApplicationLink"></f:Button>
<f:Button ID="btnSelf" runat="server" OnClientClick="Filter();" Text=" " Icon="ApplicationKey"></f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:RowNumberField EnablePagingNumber="true" />
</Columns>
</f:Grid>
위 내용 은 FineUI Grid 컨트롤 을 기반 으로 오른쪽 키 메뉴 를 추가 하 는 모든 설명 입 니 다.도움 이 되 셨 으 면 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
CSS 그리드: 파트 1 - 그리드 템플릿여기에 1에서 6까지의 숫자를 표시하는 6개의 Div가 있습니다. 코드 미리보기: 격자 없음 컨테이너를 그리드로 바꾸려면 먼저 디스플레이 그리드를 클래스에 적용해야 합니다. 그리드 템플릿 열 열을 지정하기 위해 컨테...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.