如何使用asp.net在自定义表中显示数据?

我想以自定义表格式显示SQL数据库中的数据。所以基本上这就是我想要实现的目标:

A。要在网格视图中显示SQL表中的所有条目,并在每行旁边显示一个view按钮

B。点击view按钮以在新网页中显示以下内容

 ______________________________________
|           Customer Info              |
----------------------------------------
|Customer Name:   "From DB Table"      |
|Address:         "From DB Table"      |
----------------------------------------

然后在上面的那个下面的下一个table

 ______________________________________
|           Customer Network           |
----------------------------------------
|Network Location:   "From DB Table"   |
|APs:                "From DB Table"   |
----------------------------------------

以上所有内容均来自我的SQL DB表中的一个ID。所以我想将其分解为几个部分,以显示SQL表中的所有数据

我还没有任何代码,因为我不确定该怎么做。

总结一下: 页面加载后,将在gridview中显示数据库中的所有条目,并在每行旁边显示一个视图按钮

然后,当用户单击view按钮时,它将打开一个带有上表的新页面。

谢谢

代码

GridView

<asp:GridView ID="GridView1" runat="server" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2">
    <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
    <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
    <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
    <RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
    <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
    <SortedAscendingCellStyle BackColor="#FFF1D4" />
    <SortedAscendingHeaderStyle BackColor="#B95C30" />
    <SortedDescendingCellStyle BackColor="#F1E5CE" />
    <SortedDescendingHeaderStyle BackColor="#93451F" />
</asp:GridView>

然后隐藏代码

                GridView1.DataSource = GetData();
                GridView1.DataBind();
            }
        }
    }

    DataTable GetData()
    {
        DataTable dt = new DataTable();
        using (SqlConnection con = new SqlConnection(Configurationmanager.ConnectionStrings["OfficeConnection"].ConnectionString))
        {
            con.Open();
            using (SqlCommand cmd = new SqlCommand("SELECT DisplayName 'Display Name',Replace(PrimaryEmailaddress,'SMTP:',' ') 'Email Address',Replace(Licenses,'reseller-account:',' ') 'License Type',LastPasswordChangeTimestamp 'Last Password Reset' FROM Consulting ",con))
            {
                for (int i = dt.Rows.Count - 1; i >= 0; i--)
                {
                    if (dt.Rows[i][1] == DBNull.Value)
                        dt.Rows[i].Delete();
                }
                dt.acceptChanges();
                SqlDataAdapter adpt = new SqlDataAdapter(cmd);
                adpt.Fill(dt);
            }

        }
        return dt;
    }
}
}

这是我的网络应用中其他部分的代码。我可以使用相同的代码进行一些更改,但是如何添加“查看”按钮并实现上述问题?

asdqaz2008 回答:如何使用asp.net在自定义表中显示数据?

A。这应该起作用:

Customers.aspx

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="Name" HeaderText="Name" />
        <asp:BoundField DataField="Email" HeaderText="Email" />
        <asp:BoundField DataField="Address" HeaderText="Address" />                    
        <%--add other data fields here--%>
        <asp:HyperLinkField Text="View" 
            DataNavigateUrlFields="ID" 
            DataNavigateUrlFormatString="~/View.aspx?id={0}" />
    </Columns>
</asp:GridView>

隐藏代码

protected void Page_Load(object sender,EventArgs e)
{
    if (!IsPostBack)
    {
        GetData();
    }
}

private void GetData()
{
    SqlDataReader dr;
    using (SqlConnection con = new SqlConnection([YOUR CONNECTION STRING]))
    {
        con.Open();
        // replace with your query
        using(SqlCommand cmd = new SqlCommand("SELECT ID,Name,Email,Address FROM Customers",con))
        {
            dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            GridView1.DataSource = dr;
            GridView1.DataBind();
        }
    }           
}

B。 “视图”页面接受客户ID作为参数,以您喜欢的任何html布局显示其详细信息,例如:

View.aspx

<table>
    <tbody>
        <tr>
            <th colspan="2">Customer Info</th>
        </tr>
        <tr>
            <td>Customer Name:</td>
            <td><asp:Label ID="Name" runat="server" /></td>
        </tr>
        <tr>
            <td>Address:</td>
            <td><asp:Label ID="Address" runat="server" /></td>
        </tr>
    </tbody>
</table>

<table>
    <tbody>
        <tr>
            <th colspan="2">Customer Network</th>
        </tr>
        <tr>
            <td>Email:</td>
            <td><asp:Label ID="Email" runat="server" /></td>
        </tr>
        <tr>
            <td>Network Location:</td>
            <td><asp:Label ID="NetLocation" runat="server" /></td>
        </tr>
    </tbody>
</table>

隐藏代码

protected void Page_Load(object sender,EventArgs e)
{
    if (!IsPostBack)
    {
        GetData();
    }
}

private void GetData()
{
    SqlDataReader dr;
    using (SqlConnection con = new SqlConnection([YOUR CONNECTION STRING]))
    {
        con.Open();
        // replace with your query
        using (SqlCommand cmd = new SqlCommand($"SELECT Name,Address FROM Customers WHERE ID={Request["id"]}",con))
        {
            dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            if (dr.Read())
            {
                Name.Text = dr["Name"].ToString();
                Address.Text = dr["Address"].ToString();
                Email.Text = dr["Email"].ToString();
                // etc
            }
        }
    }
}

如前所述,您可以将代码替换为从数据库中获取数据的代码,也可以替换为HTML布局。这是最低要求。

,

查找gridview CommandFields。您可以使用它们使gridview为每一行生成一个按钮,然后挂接到gridview的OnRowCommand事件。

以下是我在快速的Google搜索中发现的几个示例,其中有一些不同的方法可以帮助您入门。

https://www.codeproject.com/Tips/564619/Example-of-gridview-rowcommand-on-Button-Click

http://ezzylearning.com/tutorial/using-button-columns-in-gridview

在OnRowCommand代码中,您可以将用户重定向到新页面,或在同一页面上显示其他面板,但是您更希望处理将视图切换到详细信息视图的情况。

本文链接:https://www.f2er.com/3117013.html

大家都在问