0

以下の例に示すように、ドロップダウン リストを使用してアイテムを注文するときに SharePoint が提供するのと同じ機能を作成したいと考えていますが、それを asp.net で作成したいと考えています。

例: Modified 列が最初の列として選択されている場合、各ドロップダウンリストの値は、j​​avascript または jquery を使用して自動的に並べ替えられます。どうすればこれができるか知っている人はいますか?私はJavaScriptの経験があまりないので、助けを求めていました。

これは私がこれまでに持っているものです:

aspx コード:

<asp:GridView ID="GridView1" runat="server" EnableModelValidation="True" AutoGenerateColumns="False"
    BorderStyle="Solid" RowStyle-Width="1" RowStyle-BorderWidth="1" RowStyle-BorderColor="silver"
    Width="100%" OnRowEditing="GridView1_RowEditing" 
    onrowcancelingedit="GridView1_RowCancelingEdit" 
    onrowdatabound="GridView1_RowDataBound" DataKeyNames="ID,LanguageID">
    <Columns>
        <asp:TemplateField HeaderText="Ranking" HeaderStyle-HorizontalAlign="Left" SortExpression="Ranking">
            <EditItemTemplate>
                <asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("Ranking") %>'></asp:TextBox>
                <asp:DropDownList ID="ddlRanking" runat="server">
                </asp:DropDownList>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label4" runat="server" Text='<%# Bind("Ranking") %>'></asp:Label>
                <asp:DropDownList ID="DropDownList3" runat="server">
                </asp:DropDownList>
            </ItemTemplate>
            <HeaderStyle HorizontalAlign="Left"></HeaderStyle>
        </asp:TemplateField>
    </Columns>
    <RowStyle BorderColor="Silver" BorderWidth="1px" Width="1px"></RowStyle>
</asp:GridView>

コードビハインド:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) {
    if (e.Row.RowType == DataControlRowType.DataRow) {
        DropDownList ddlLang = (DropDownList)e.Row.FindControl("Dropdownlist2");
        if (ddlLang != null) {
            LanguagesList lang = new LanguagesList();

            ddlLang.DataSource = lang.GetAllByLanguageId();
            ddlLang.DataTextField = "LanguageName";
            ddlLang.DataValueField = "ID";
            ddlLang.DataBind();
            ddlLang.SelectedValue = GridView1.DataKeys[e.Row.RowIndex].Values[1].ToString();
            //ddlLang.Items.FindByValue((Label)(e.Row.FindControl("Label3"))).Selected = true;
        }

        DropDownList ddlRanking = (DropDownList) e.Row.FindControl("Dropdownlist3");
        if(ddlRanking !=null) {
            Ranking(ddlRanking);
        }
    }
}

ここに画像の説明を入力

これは上記のコードの結果です。

ここに画像の説明を入力

4

0 に答える 0