DropDownList设置客户端事件

假设:数据源控件GrdiView,无刷新UpdatePannel,友情提示UpdateProgress,分页下拉框DropDownList



一般情况下:Gridview的分页有linkbutton或者button,这样要是想让UpdateProgress提示,很简单,先让GridView隐藏,然后给它加个OnClientClick就搞定!

在DropDownList的onchange事件里:

function selectChange() {
            if ($("select option").is(":selected")) {
                $("#btn11").click();
            }
        }

 跳转到:
                                <asp:DropDownList ID="ddlNeedPage" runat="server" AutoPostBack="true"
                                    onchange="return selectChange();">
                                </asp:DropDownList>

function clearData() {
            //$("#<%=_gvGuest.ClientID %>").empty();
            $("#_gvGuest").empty();
            //$("#<%=lblMessage.ClientID %>").hide();
            $("#lblMessage").hide();
        }

<asp:LinkButton ID="lnkFirstPage" runat="server" OnClientClick="return clearData();"
                                    CommandName="Page" CommandArgument="First" Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex != 0 %>">第一页</asp:LinkButton>

但是DropDownList没有OnClientClick事件,怎么办?


因为上面说了Button有Onclientclick我们可以想到借助Button来转换一下!!!!


解决办法:在页面上放一个隐藏的button:<asp:Button ID="btn11" runat="server" CssClass="btnPage"Style="display: none;" OnClick="btn11_Click"
                            OnClientClick="return clearData2();"/>


然后再OnClientClick事件里把下拉框的值赋给一个隐藏域


function clearData2() {
            var hidDDL = $("#_gvGuest_ddlNeedPage").val();
            $("#hidNeedPage").attr("value", hidDDL);
            $("#_gvGuest").empty();
            $("#lblMessage").hide();
        }


然后在click事件里将_gvGuest的PageIndex设置成隐藏域的value!


 protected void btn11_Click(object sender, EventArgs e)
        {

            if (!string.IsNullOrEmpty(hidNeedPage.Value))
            {
                _gvGuest.PageIndex = Convert.ToInt32(hidNeedPage.Value);
                BindData();
            }
        }

基本思路就实现了!!!谢谢围观!

2012年12月4日 10:25

你可能感兴趣的:(UpdateProgress,Gridview分页,Updatepannel,Updatepannel)