Translate

2013年7月26日 星期五

GridView EditTemplate下拉式選單編輯


通常直接在GridView 編輯狀態的時後都是使用TextBox來輸入更新資料
但若希望使用下拉式選單選擇資料可以採取以下的作法

做法如下
初始化DropDownList的資料
並設置選取的DateText及DataValue

  <asp:GridView ID="GridView1" runat="server" DataSourceID="EntityDataSource1"
 AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="seqid" >
                    <Columns>

                 <asp:TemplateField HeaderText="尺寸" SortExpression="pmid">
                            <EditItemTemplate>
                                <asp:DropDownList ID="gvtype" runat="server" DataTextField="Text" DataValueField="Value" SelectedValue='<%# Bind("size") %>' OnInit="DropDownList1_Init" />
                            </EditItemTemplate>
                            <ItemTemplate><%# Eval("size")%></ItemTemplate>
                        </asp:TemplateField>

                     <asp:TemplateField HeaderText="設定" ShowHeader="False">
                            <EditItemTemplate>
                                <asp:LinkButton ID="lbtn1" runat="server" CausesValidation="True"  CommandName="Update" Text="更新" />
                                <asp:LinkButton ID="lbtn2" runat="server" CausesValidation="False" CommandName="Cancel" Text="取消" />
                            </EditItemTemplate>
                            <ItemTemplate>
                                <asp:LinkButton ID="EditBtn" runat="server" CausesValidation="False" CommandName="Edit" Text=" 編輯" />
                            </ItemTemplate>
                            <ItemStyle Width="70px" />
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>


c#.cs:

       protected void DropDownList1_Init(object sender, EventArgs e)
        {
            DropDownList dl = sender as DropDownList;
            dl.DataSource = new List<ListItem>()
                {
                    new ListItem(){ Text ="S", Value="0"},
                    new ListItem(){ Text ="M", Value="1"},
                    new ListItem(){ Text ="L", Value="2"},
                };
        }

沒有留言:

張貼留言