为什么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,<asp:GridView ID="GridViewConductorsDevices" runat="server" >
需要一个数据源。
您提到了一个存储过程,但在发布的代码中没有引用它。
要将数据绑定到Gridview,您需要在代码后面为Gridview DataSource
属性分配一个,然后调用GridViewConductorsDevices.DataBind()
或者,您可以将DataSource控件的ID提供给Gridview DataSourceID
属性,该属性将在页面生命周期期间自动绑定。
但是,无论在哪种情况下,都不会调用事件GridViewConductorsDevices_RowCommand
,因为您没有定义CommandField
来触发行事件。