为什么gridview为空并且没有从数据库加载

本文关键字:数据库 加载 gridview 为什么 | 更新日期: 2024-06-14 09:09:23

我正在从存储过程填充数据库,但它不起作用,甚至调试器也不起作用。问题出在哪里,为什么是空白的?我已经尝试了好几次没有调试的nd,但它不起作用

protected void GridViewConductorsDevices_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        try
        {
            DataTable ConductorDevicesInfo = new DataTable();
            int ID = Convert.ToInt32(GridViewConductorsDevices.DataKeys[Convert.ToInt32(e.CommandArgument)].Value);
            ViewState["ID"] = ID;
            ConductorDevicesInfo = (DataTable)ManageTransport.ManageConductorDevices.GetAssignedDevices();
            this.TextBoxID.Text = GridViewConductorsDevices.DataKeys[Convert.ToInt32(e.CommandArgument)].Value.ToString();
            this.DropDownListConductors.SelectedValue= ConductorDevicesInfo.Rows[0]["Conductor_ID"].ToString();
            this.DropDownListDevices.SelectedValue = ConductorDevicesInfo.Rows[0]["Device_ID"].ToString();
            MultiView1.ActiveViewIndex = -1;
            MultiView1.ActiveViewIndex = 2;
        }
        catch (Exception)
        {
        }
        finally
        {
        }
    }

.aspx

<asp:GridView ID="GridViewConductorsDevices" runat="server" AutoGenerateColumns="False" CaptionAlign="Top"
                                CssClass="table table-hover table-striped table-bordered" DataKeyNames="ID" OnRowCommand="GridViewConductorsDevices_RowCommand"
                                Width="100%">
                                <Columns>
                                    <asp:BoundField DataField="ID" HeaderText="ID" ItemStyle-CssClass="visible-desktop"
                                        HeaderStyle-CssClass="visible-desktop">
                                        <HeaderStyle HorizontalAlign="Left" />
                                    </asp:BoundField>
                                    <asp:BoundField DataField="Conductor_ID" Visible="false" ItemStyle-CssClass="visible-desktop"
                                        HeaderStyle-CssClass="visible-desktop">
                                        <HeaderStyle HorizontalAlign="Left" />
                                    </asp:BoundField>
                                    <asp:BoundField DataField="Device_ID" Visible="false" ItemStyle-CssClass="visible-desktop"
                                        HeaderStyle-CssClass="visible-desktop">
                                        <HeaderStyle HorizontalAlign="Left" />
                                    </asp:BoundField>
                                    <asp:BoundField DataField="Conductor" HeaderText="Conductor" 
                                        ItemStyle-CssClass="visible-desktop"
                                        HeaderStyle-CssClass="visible-desktop">
                                        <HeaderStyle HorizontalAlign="Left" />
                                    </asp:BoundField>
                                    <asp:BoundField DataField="Terminal" HeaderText="Terminal" ItemStyle-CssClass="visible-desktop"
                                        HeaderStyle-CssClass="visible-desktop">
                                        <HeaderStyle HorizontalAlign="Left" />
                                    </asp:BoundField>
                                   <%-- <asp:BoundField DataField="TotalDistance" HeaderText="Total Distance" ItemStyle-CssClass="visible-desktop"
                                        HeaderStyle-CssClass="visible-desktop">
                                        <HeaderStyle HorizontalAlign="Left" />
                                    </asp:BoundField>--%>
                                    <%-- <asp:BoundField DataField="Model" HeaderText="Model" ItemStyle-CssClass="visible-desktop"
                                        HeaderStyle-CssClass="visible-desktop">
                                        <HeaderStyle HorizontalAlign="Left" />
                                    </asp:BoundField>--%>
                                    <%--<asp:BoundField DataField="ChassisNo" HeaderText="Chassis No" ItemStyle-CssClass="visible-desktop"
                                        HeaderStyle-CssClass="visible-desktop">
                                        <HeaderStyle HorizontalAlign="Left" />
                                    </asp:BoundField>--%>
                                    <%--<asp:BoundField DataField="EngineNo" HeaderText="EngineNo" ItemStyle-CssClass="visible-desktop"
                                        HeaderStyle-CssClass="visible-desktop">
                                        <HeaderStyle HorizontalAlign="Left" />
                                    </asp:BoundField>--%>
                                    <asp:ButtonField Text="Edit" HeaderText="Option" ItemStyle-CssClass="visible-desktop"
                                        HeaderStyle-CssClass="visible-desktop"></asp:ButtonField>
                                </Columns>
                            </asp:GridView>

为什么gridview为空并且没有从数据库加载

您的Gridview,<asp:GridView ID="GridViewConductorsDevices" runat="server" >需要一个数据源。

您提到了一个存储过程,但在发布的代码中没有引用它。

要将数据绑定到Gridview,您需要在代码后面为Gridview DataSource属性分配一个,然后调用GridViewConductorsDevices.DataBind()

或者,您可以将DataSource控件的ID提供给Gridview DataSourceID属性,该属性将在页面生命周期期间自动绑定。

但是,无论在哪种情况下,都不会调用事件GridViewConductorsDevices_RowCommand,因为您没有定义CommandField来触发行事件。