删除</li>
<li id=”save”>
<img src=”image/Home_Age_UnSelect.jpg” width=”16″ height=”16″ />
保存</li>
<li id=”About”>
<img src=”image/Home_Age_UnSelect.jpg” width=”16″ height=”16″ />
关于</li>
</ul>
</div>
<asp:GridView ID=”GridView1″ runat=”server” Width=”100%” BackColor=”White” BorderColor=”#CCCCCC”
BorderStyle=”None” BorderWidth=”1px” CellPadding=”3″>
<RowStyle ForeColor=”#000066″ />
<FooterStyle BackColor=”White” ForeColor=”#000066″ />
<PagerStyle BackColor=”White” ForeColor=”#000066″ HorizontalAlign=”Left” />
<SelectedRowStyle BackColor=”#669999″ Font-Bold=”True” ForeColor=”White” />
<HeaderStyle BackColor=”#006699″ Font-Bold=”True” ForeColor=”White” />
</asp:GridView>
</div>
</form>
</body>
</html>
注:
1:contextMenu我们互根据数据记录隐藏一些菜单项,这个可以在onShowMenu事件中,根据
e.currentTarget触发源获取数据,在根据remove菜单项。比如测试用例中的:如果id>10则不允许保存
if (parseInt($(“td:eq(0)”, e.currentTarget).text()) > 10) {
$(“#save”, menu).remove();
}
2:事件注册:根据第二个参数target获取数据,第一个参数t获取菜单项。比如:
‘add’: function(t, target) {
alert(‘Trigger:’ + t.id + ‘ 增加’ + ” taget by:” + $(“td:eq(0)”, target).text());
},
在这里需要用到ajax和服务端通讯,可以采用我的上一篇组件:jQuery Ajax 仿AjaxPro.Utility.RegisterTypeForAjax辅助方法,将会更简单应用ajax通讯。
在我下的源代码中这里有点问题:
原来的,这里的currentTarget始终为undefined。
if (!!cur.onShowMenu) menu = cur.onShowMenu(e, menu);
$.each(cur.bindings, function(id, func) {
$(‘#’ + id, menu).bind(‘click’, function(e) {
hide();
func(trigger, currentTarget);
});
});
我修改后:
if (!!cur.onShowMenu) menu = cur.onShowMenu(e, menu);
$.each(cur.bindings, function(id, func) {
$(‘#’ + id, menu).bind(‘click’, function(ev) {
hide();
func(trigger, e.currentTarget);
});
});
这样就一切正常了。
内容很少,一切就在此打断,结束 ,over!
附件下载:Demo










