【问题标题】:Can't see my gridview on page load from SQL Server database从 SQL Server 数据库加载页面时看不到我的 gridview
【发布时间】:2014-10-31 00:56:10
【问题描述】:

我做了一个简单的 gridview 示例,不知道为什么,但是网站上根本不存在 gridview。

这是我在浏览器中看到的图片 - 没什么...http://ipic.su/img/img7/fs/example.1414716455.jpg

有人能看出任何错误吗?

<%@Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Site.Master" CodeFile="InvoiceEdit.aspx.cs" Inherits="InvoiceEdit" EnableEventValidation="false" %>

<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
  <style>
.gridview 
{
    background: red;
    border:dashed 1px blue;
}
</style>
  <asp:GridView ID="gvInvoice" runat="server"            
    AutoGenerateColumns="False" 
    OnRowDataBound="gvInvoice_RowDataBound"
    DataKeyNames="InvoiceID"   
    AutoGenerateEditButton="False" 
    CellPadding="1" Width="100%" 
    datasourceid="SqlDataSource1"
    CssClass ="gridview">
<Columns >
    <asp:BoundField HeaderText="InvoiceID" DataField="InvoiceID" ReadOnly="true" /> 
    <asp:BoundField HeaderText="RechnNummer" DataField="RechnNummer" ReadOnly="true" />
    <asp:BoundField HeaderText="Kunde" DataField="Kunde" ReadOnly="true" />
    <asp:BoundField HeaderText="Text" DataField="Text" ReadOnly="true"/>            
</Columns>
</asp:GridView>
----TEST TEXT----
<asp:sqldatasource id="SqlDataSource1"          
    selectcommand="Select * from Invoice where InvoiceID = @InvoiceID"
    updatecommand="Update Invoice set RechnNummer = @RechnNummer, Kunde=@Kunde, Text=@Text, RechnDatum=@RechnDatum, Netoo=@Netoo,
                  Umsatzsteuer=@Umsatzsteuer, Brutto=@Brutto, Eingang=@Eingang where InvoiceID = @InvoiceID"        
    connectionstring="<%$ ConnectionStrings:Invoice%>"
    runat="server" >    
    <SelectParameters> 
        <asp:ControlParameter ControlID="gvInvoice" PropertyName="SelectedValue" Name="InvoiceID" />
    </SelectParameters>
    <UpdateParameters>
        <asp:ControlParameter ControlID="gvInvoice" PropertyName="SelectedValue" Name="InvoiceID" />
    </UpdateParameters>
  </asp:sqldatasource>
</asp:Content>

代码隐藏几乎是空的,但我认为没关系......也许缺少一些库?或者有什么问题?感谢您的回答!

public partial class InvoiceEdit : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)  
    {      
    }

    protected void gvInvoice_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        { 
            e.Row.Attributes.Add("onmouseover",    "this.originalstyle=this.style.backgroundColor;this.style.backgroundColor='#C2C2C2'");
            e.Row.Attributes.Add("onmouseout","this.style.backgroundColor=this.originalstyle;");
            e.Row.Attributes["style"] = "cursor:pointer";
        }
   }
}

【问题讨论】:

  • 检查您的数据源。你有数据吗?
  • 请看这张照片,ipic.su/img/img7/fs/example.1414719295.jpg 如果我使用设计模式,我可以看到那个gridview,但我不能在那里编辑它......嗯。可悲的是,但我没有收到任何错误,这是第一次发生在我身上
  • 设计模式只是向您展示一些虚拟数据。这并不意味着您从数据库中获取数据。看看你的数据源。你的连接字符串在哪里?检查是否正确
  • 你可以只测试你的 SQL 数据源,看看它是否连接到数据库
  • 我的连接字符串在 WebConfig 中 ipic.su/img/img7/fs/example.1414720209.jpg 我在这台 PC 上还有一个大项目,它具有相同的 shema 并且可以工作 >。

标签: c# sql asp.net sql-server gridview


【解决方案1】:

试试this

添加文本字段:

 <asp:TextBox ID="txtInvoiceID" runat="server"></asp:TextBox>

在数据源代码上更改 Select 语句和 Select Parameter:

 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:Invoice %>"
    SelectCommand="Select * from Invoice where InvoiceID = @InvoiceID OR @InvoiceID IS NULL" CancelSelectOnNullParameter="false">
    <SelectParameters>
        <asp:QueryStringParameter Name="InvoiceID" DbType = "String" Direction = "Input" QueryStringField="Id" DefaultValue="" ConvertEmptyStringToNull="True" />
    </SelectParameters>
</asp:SqlDataSource>

代码后面:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        txtInvoiceID.Text = Request.QueryString["Id"];
    }
}

protected void btnRedirect_Click(object sender, EventArgs e)
{
    Response.Redirect("~/Default.aspx?Id=" + txtInvoiceID.Text.Trim());
}

你必须添加SQL参数。。datagrid没有数据,所以datagrid是不可见的。

【讨论】:

  • 谢谢,但我工作了一夜,终于解决了这个问题。 SQL 连接被窃听(不知道为什么),我只是从 null 开始做了一次
猜你喜欢
  • 2014-01-16
  • 2013-06-24
  • 1970-01-01
  • 1970-01-01
  • 2011-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多