DropDownList設定客戶端事件

赤砂之蠍我愛羅發表於2012-12-04

假設:資料來源控制元件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

相關文章