1

Gridview には 100 人の顧客が含まれており、各ページには 10 人の顧客が含まれています。

ユーザーが A をクリックした場合、A で始まるすべての顧客名を一覧表示します。

助けてください。

4

4 に答える 4

0

Faster and jQueryアプローチは、このリンクで言及されています

$(document).ready(function() {
    $('#<%=lblNoRecords.ClientID%>').css('display','none');

    $('.links').click(function(e)
    {
        $('#<%=lblNoRecords.ClientID%>').css('display','none'); 

        var lnkText = $(this).text().toLowerCase();
        var iCounter = 0;

        $("#<%=gdRows.ClientID%> tr:has(td)").each(function() {
            var cell = $(this).find("td:eq(1)").text().toLowerCase();
            if(lnkText != 'all')
            {
                if(cell.indexOf(lnkText) != 0)
                {
                    $(this).css('display','none');
                }
                else
                {
                    $(this).css('display','');
                    iCounter++;
                }    
            }
            else
            {
                $(this).css('display','');
                iCounter++;
            }
        });

        if(iCounter == 0)
        {
            $('#<%=lblNoRecords.ClientID%>').css('display','');
        }
        e.preventDefault();
    });
});
于 2012-12-02T15:00:28.440 に答える
0

SqlDataSource を使用している場合は、SelectCommand でパラメーターを指定できます。

SelectCommand="SELECT * FROM [Genre] WHERE [Name] LIKE @FirstLetter+'%'" 

たとえば、内にパラメータを追加する必要があります

<SelectParameters>
    <asp:Parameter Name="FirstLetter" Type="String" />
</SelectParameters>

コードビハインドでは、パラメーターの値を設定できます。

SqlDataSource1.SelectParameters["FirstLetter"].DefaultValue = filterletter;
于 2012-12-01T10:30:05.673 に答える
0

アプローチ #1

ASPX マークアップ:

<asp:Repeater ID="rptAlpha" runat="server" OnItemCommand="rptAlpha_ItemCommand">
    <ItemTemplate>
        <asp:LinkButton ID="lbAlpha" runat="server" 
             CommandArgument='<%# Container.DataItem.ToString() %>'><%#Container.DataItem.ToString() %></asp:LinkButton>
    </ItemTemplate>
</asp:Repeater>
<br />
<asp:GridView ID="GridView1" runat="server" DataSourceID="ObjectDataSource1">
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
     OldValuesParameterFormatString="original_{0}"
     OnSelecting="ObjectDataSource1_Selecting" SelectMethod="Load" TypeName="Your.TypeName.Here">
     <SelectParameters>
         <asp:Parameter Name="Filter" Type="Object" />
     </SelectParameters>
 </asp:ObjectDataSource>

C# コード

protected void Page_Load(object sender, EventArgs e)
{
        if (IsPostBack)
            return;

        BindAlphaRepeater();
}

private void BindAlphaRepeater()
{
        string[] alphabet = {"a", "b", "c", "d", "e" };

        rptAlpha.DataSource = alphabet;
        rptAlpha.DataBind();
}

protected void rptAlpha_ItemCommand(object source, RepeaterCommandEventArgs e)
{
        string filterleter = e.CommandArgument as string;

        if (filterleter == null)
            return;

        ViewState["filterletter"] = filterleter;

        GridView1.DataBind();
}

protected void ObjectDataSource1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
        // This is designed to return null, you might want to change it to a default value
        e.InputParameters["Filter"] = ViewState["filterletter"] as string     
}

protected void Button1_Click(object sender, EventArgs e)
{
        Response.Write("Paging click");
        GridView1.DataBind();
}

説明:

リピーターを使用してアルファベットをバインドし、その Repeatet の OnItemCommand を使用してデータを取得し、選択したアルファベットに基づいてグリッド ビューをバインドします。

アプローチ #2

グリッドビューの上に 26 個のボタン + グリッドビューの上にあるすべてのボタンを 1 つ持つことができます。

26 個のボタンすべてについて、グリッドビューのデータをフィルター処理することができますbuttonAPLHA_Clicksender.tag

たとえば、buttonAPLHA_Clickあなたの中にいることができます。

GridView.datasource = GetDataByAplha(Sender.Tag.Tostring());

私が説明したいことが理解できることを願っています。

于 2012-12-01T09:02:42.810 に答える
-1

このサンプル クエリを使用してください。

string query = "select from tbl_name where name like '%" + dropdownlist.SelectedValue + "'";

于 2012-12-01T09:22:20.397 に答える