使用对象数据源在GridView中创建DropDownList

时间:2016-06-19 05:44:24

标签: c# asp.net gridview

我用对象数据源制作了一个gridview。我为Object Data Source创建了一个类,并在aspx页面中创建了gridview。

它运行得很完美,但我想制作,当我更新表时,有两个coloumn会变成下拉列表,而不是自由文本。

我不知道怎么做,你能不能给我一些例子。 这是我的对象数据源类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

namespace quittance.Kelas
{
    public class dalamkota_rincian_8:daftarproperti
    {
        public static List<daftarproperti> AmbilJadwal(string nomorSt)
        {
            List<daftarproperti> Listjadwal = new List<daftarproperti>();
            string CS = ConfigurationManager.ConnectionStrings["nikita_app"].ConnectionString;

            using (SqlConnection con = new SqlConnection(CS))
            {
                SqlCommand cmd = new SqlCommand("xp_generatejadwal_dalamkota8", con);
                cmd.CommandType = CommandType.StoredProcedure;
                SqlParameter paramnoSt = new SqlParameter("@nomorSt", nomorSt);
                cmd.Parameters.Add(paramnoSt);
                con.Open();
                SqlDataReader rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    daftarproperti jadwal = new daftarproperti();
                    jadwal.tugasID = (int)rdr["tugasID"];
                    jadwal.nama = rdr["nama"].ToString();
                    jadwal.nip = rdr["nip"].ToString();
                    jadwal.gol = rdr["gol"].ToString();
                    jadwal.tgl_mulai = rdr["tgl_mulai"].ToString();
                    jadwal.tgl_selesai = rdr["tgl_selesai"].ToString();
                    jadwal.jumlahhari1 = rdr["jumlahhari1"] as int? ?? default(int);
                    Listjadwal.Add(jadwal);
                }
            }

            return Listjadwal;
        }
    }
}

已连接对象数据源和Gridview。

<asp:ObjectDataSource ID="ds_dalamkota8_jadwal" runat="server" DeleteMethod="DeleteJadwal" InsertMethod="InsertJadwal" SelectMethod="AmbilJadwal" TypeName="quittance.Kelas.dalamkota_rincian_8" UpdateMethod="UpdateJadwal">
                        <DeleteParameters>
                            <asp:Parameter Name="tugasID" Type="Int32" />
                        </DeleteParameters>
                        <InsertParameters>
                            <asp:Parameter Name="nip" Type="String" />
                            <asp:Parameter Name="gol" Type="String" />
                            <asp:Parameter Name="kdlokasi" Type="Int32" />
                            <asp:Parameter Name="tgl_mulai" Type="String" />
                            <asp:Parameter Name="tgl_selesai" Type="String" />
                        </InsertParameters>
                        <SelectParameters>
                            <asp:SessionParameter Name="nomorSt" SessionField="nomorst" Type="String" />
                        </SelectParameters>
                        <UpdateParameters>
                            <asp:Parameter Name="tugasID" Type="Int32" />
                            <asp:Parameter Name="nip" Type="String" />
                            <asp:Parameter Name="gol" Type="String" />
                            <asp:Parameter Name="kdlokasi" Type="Int32" />
                            <asp:Parameter Name="tgl_mulai" Type="String" />
                            <asp:Parameter Name="tgl_selesai" Type="String" />
                        </UpdateParameters>
                    </asp:ObjectDataSource>

当我编辑时,我想让nip和gol coloumn变成下拉列表。我不知道如何使用对象数据源,我应该在Object Data Source类或aspx.cs页面中使用sqldatasource。 请给我一个例子/解释。

1 个答案:

答案 0 :(得分:0)

你可以调用一个从页面加载事件中提供数据的方法,然后你可以将数据绑定到下拉列表

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        GridView1.DataSource =  AmbilJadwal(nomorSt);
        GridView1.DataBind();
    }
}

下面给出了帮助链接,最有可能解决您的问题

Bind DropDownList in ItemTemplate of TemplateField in ASP.Net GridView