微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法在 Gridview ASP.Net 中填充 DropDownList

如何解决无法在 Gridview ASP.Net 中填充 DropDownList

我遇到的问题是,首先,每当我按下编辑按钮时,行类型和状态都会读取“标题”和“正常”(我希望它读取“DaTarow”和“编辑”)。其次,我无法使用其 id 选择我的下拉列表。 ddl 的值始终为 null。

.aspx 页面

    <div style="overflow: scroll">
          <asp:GridView ID="gvLines" runat="server" AutoGenerateColumns="False" BackColor="White" BorderColor="#336666" BorderStyle="Double"
            BorderWidth="3px" CellPadding="4" GridLines="Horizontal" OnRowUpdating="OnRowUpdating" OnRowCancelingEdit="OnRowCancelingEdit" OnRowEditing="OnRowEditing" OnRowCommand="gvLines_RowCommand" DataKeyNames="dplnID"
            Width="1200px" OnRowDataBound="gvLines_RowDataBound">
            <Columns>
              <asp:BoundField datafield="dplnID" Visible="False" />

              <asp:BoundField datafield="dplnStopID" HeaderText="Stop" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center" ItemStyle-Width="5%" >
                <HeaderStyle HorizontalAlign="Center" />
                <ItemStyle HorizontalAlign="Center" Width="5%" />
                </asp:BoundField>
              <asp:BoundField datafield="dplnStopType" HeaderText="Type" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center" ItemStyle-Width="5%" >
                <HeaderStyle HorizontalAlign="Center" />
                <ItemStyle HorizontalAlign="Center" Width="5%" />
                </asp:BoundField>
              <asp:TemplateField HeaderText="Site">
                  <EditItemTemplate>
                      <asp:DropDownList id="ddlSite" runat="server"  Text='<%# Bind("dpstCode") %>'> 
                      </asp:DropDownList>
                  </EditItemTemplate>
                  <ItemTemplate>
                      <asp:Label ID="Label1" runat="server" Text='<%# Bind("dpstCode") %>'> 
                      </asp:Label>
                  </ItemTemplate>
                  <HeaderStyle HorizontalAlign="Center" />
                  <ItemStyle HorizontalAlign="Center" Width="8%" />
              </asp:TemplateField>

.aspx.cs 页面

protected void gvLines_RowDataBound(object sender,GridViewRowEventArgs e)
   {
       if (e.Row.RowType == DataControlRowType.DaTarow)
       {
           if ((e.Row.RowState & DataControlRowState.Edit) > 0)
           {
               DropDownList ddl = (DropDownList)e.Row.FindControl("ddlSite");

               DataTable site = new DataTable();

               using (sqlConnection con = new 
               sqlConnection(WebConfigurationManager.ConnectionStrings["ToshDB"].ConnectionString))
               {

                   try
                   {
                       sqlDataAdapter adapter = new sqlDataAdapter("SELECT * FROM dpSite",con);
                       adapter.Fill(site);

                       ddl.DataSource = site;
                       ddl.DataTextField = "dpstName";
                       ddl.DataValueField = "dpstCode";
                       ddl.DataBind();
                   }
                   catch (Exception ex)
                   {
                       // Handle the error
                   }

               }
           }
       
       }
       
   }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。