Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数据库值转换为HTML_C#_Asp.net - Fatal编程技术网

C# 将数据库值转换为HTML

C# 将数据库值转换为HTML,c#,asp.net,C#,Asp.net,我正在开发一个用C.Net 4.0编写的应用程序-基本上我有一个从数据库返回订单的存储过程…我正在将这些订单绑定到GridView- 代码隐藏 在HTML方面,我有以下代码 HTML代码 我遇到困难的那一块在这里 <a class="btn green small inline" href="#Order11"> <i class="fa fa-ticket"></i> View Order</a> <a class=

我正在开发一个用C.Net 4.0编写的应用程序-基本上我有一个从数据库返回订单的存储过程…我正在将这些订单绑定到GridView-

代码隐藏

在HTML方面,我有以下代码

HTML代码

我遇到困难的那一块在这里

<a class="btn green small inline" href="#Order11">
    <i class="fa fa-ticket"></i> View Order</a>
        <a class="btn green small" href="#" onclick="printContent('Ticket11')">
我想用数据库中的实际OrderID替换href=Order11,并再次用数据库中的实际OrderID替换printContent'Ticket11',这样它将读取href=Order12345和printContent'Ticket12345'

请记住,我的桌子上平均有30-50个订单


我陷入困境的地方是,我无法将OrderID从CodeBehind中的数据库中取出并放入HTML代码块中

有几种方法可以做到这一点。假设数据库中的OrderID字段是OrderID列

1您可以像这样使用模板数据绑定:

<asp:TemplateField HeaderText="Action" HeaderStyle-HorizontalAlign="Center">
                <ItemTemplate>
                    <a class="btn green small inline" href='#Order<%# Eval("orderId")%>'>
                        <i class="fa fa-ticket"></i> View Order</a>
                    <a class="btn green small" href="#" onclick="printContent('Ticket<%# Eval("orderId")%>')">
                        <i class="fa fa-print"></i> Print</a>
                </ItemTemplate>
            </asp:TemplateField>
还应更改页面加载以提高性能,并将数据放在DataTable对象中,以便可以在dataBound事件中将其作为DataRow检索:

        ...
        sqlCmd.Parameters.Add("@startdate", SqlDbType.DateTime);
        sqlCmd.Parameters["@startdate"].Value = "06/01/2015 18:00:00";
        SqlDataAdapter adapter = new SqlDataAdapter(sqlCmd, sqlConn);
        DataTable tblOrder = new DataTable();
        adapter.Fill(tblOrder);

        // get the count
        // @TODO: This is a very expensive method -- there must be a better way
        int count = tblOrder.Rows.Count;
        ...

        grid1.DataSource = tblOrder;
        grid1.DataBind();
        ...

有几种方法可以做到这一点。假设数据库中的OrderID字段是OrderID列

1您可以像这样使用模板数据绑定:

<asp:TemplateField HeaderText="Action" HeaderStyle-HorizontalAlign="Center">
                <ItemTemplate>
                    <a class="btn green small inline" href='#Order<%# Eval("orderId")%>'>
                        <i class="fa fa-ticket"></i> View Order</a>
                    <a class="btn green small" href="#" onclick="printContent('Ticket<%# Eval("orderId")%>')">
                        <i class="fa fa-print"></i> Print</a>
                </ItemTemplate>
            </asp:TemplateField>
还应更改页面加载以提高性能,并将数据放在DataTable对象中,以便可以在dataBound事件中将其作为DataRow检索:

        ...
        sqlCmd.Parameters.Add("@startdate", SqlDbType.DateTime);
        sqlCmd.Parameters["@startdate"].Value = "06/01/2015 18:00:00";
        SqlDataAdapter adapter = new SqlDataAdapter(sqlCmd, sqlConn);
        DataTable tblOrder = new DataTable();
        adapter.Fill(tblOrder);

        // get the count
        // @TODO: This is a very expensive method -- there must be a better way
        int count = tblOrder.Rows.Count;
        ...

        grid1.DataSource = tblOrder;
        grid1.DataBind();
        ...

有几种方法可以做到这一点。假设数据库中的OrderID字段是OrderID列

1您可以像这样使用模板数据绑定:

<asp:TemplateField HeaderText="Action" HeaderStyle-HorizontalAlign="Center">
                <ItemTemplate>
                    <a class="btn green small inline" href='#Order<%# Eval("orderId")%>'>
                        <i class="fa fa-ticket"></i> View Order</a>
                    <a class="btn green small" href="#" onclick="printContent('Ticket<%# Eval("orderId")%>')">
                        <i class="fa fa-print"></i> Print</a>
                </ItemTemplate>
            </asp:TemplateField>
还应更改页面加载以提高性能,并将数据放在DataTable对象中,以便可以在dataBound事件中将其作为DataRow检索:

        ...
        sqlCmd.Parameters.Add("@startdate", SqlDbType.DateTime);
        sqlCmd.Parameters["@startdate"].Value = "06/01/2015 18:00:00";
        SqlDataAdapter adapter = new SqlDataAdapter(sqlCmd, sqlConn);
        DataTable tblOrder = new DataTable();
        adapter.Fill(tblOrder);

        // get the count
        // @TODO: This is a very expensive method -- there must be a better way
        int count = tblOrder.Rows.Count;
        ...

        grid1.DataSource = tblOrder;
        grid1.DataBind();
        ...

有几种方法可以做到这一点。假设数据库中的OrderID字段是OrderID列

1您可以像这样使用模板数据绑定:

<asp:TemplateField HeaderText="Action" HeaderStyle-HorizontalAlign="Center">
                <ItemTemplate>
                    <a class="btn green small inline" href='#Order<%# Eval("orderId")%>'>
                        <i class="fa fa-ticket"></i> View Order</a>
                    <a class="btn green small" href="#" onclick="printContent('Ticket<%# Eval("orderId")%>')">
                        <i class="fa fa-print"></i> Print</a>
                </ItemTemplate>
            </asp:TemplateField>
还应更改页面加载以提高性能,并将数据放在DataTable对象中,以便可以在dataBound事件中将其作为DataRow检索:

        ...
        sqlCmd.Parameters.Add("@startdate", SqlDbType.DateTime);
        sqlCmd.Parameters["@startdate"].Value = "06/01/2015 18:00:00";
        SqlDataAdapter adapter = new SqlDataAdapter(sqlCmd, sqlConn);
        DataTable tblOrder = new DataTable();
        adapter.Fill(tblOrder);

        // get the count
        // @TODO: This is a very expensive method -- there must be a better way
        int count = tblOrder.Rows.Count;
        ...

        grid1.DataSource = tblOrder;
        grid1.DataBind();
        ...


@TODO:这是一个非常昂贵的方法-必须有更好的方法-正确:从MyTable中选择count*-存储过程是否返回OrderID?如果不修改它,它就会修改。我已经编辑了你的标题。请看,如果一致意见是否定的,他们就不应该这样做。另外,请查看您的数据。它需要更多的代码行来填充它,但在本例中,它比DataReader稍微灵活一些。您将能够获取行数并将数据集绑定到GridView@TODO:这是一个非常昂贵的方法-必须有更好的方法-更正:从MyTable中选择count*-您的存储过程是否返回OrderID?如果不修改它,它就会修改。我已经编辑了你的标题。请看,如果一致意见是否定的,他们就不应该这样做。另外,请查看您的数据。它需要更多的代码行来填充它,但在本例中,它比DataReader稍微灵活一些。您将能够获取行数并将数据集绑定到GridView@TODO:这是一个非常昂贵的方法-必须有更好的方法-更正:从MyTable中选择count*-您的存储过程是否返回OrderID?如果不修改它,它就会修改。我已经编辑了你的标题。请看,如果一致意见是否定的,他们就不应该这样做。另外,请查看您的数据。它需要更多的代码行来填充它,但在本例中,它比DataReader稍微灵活一些。您将能够获取行数并将数据集绑定到GridView@TODO:这是一个非常昂贵的方法-必须有更好的方法-更正:从MyTable中选择count*-您的存储过程是否返回OrderID?如果不修改它,它就会修改。我已经编辑了你的标题。请看,如果一致意见是否定的,他们就不应该这样做。另外,请查看您的数据。它需要更多的代码行来填充它,但在本例中,它比DataReader稍微灵活一些。您将能够获取行数并将数据集绑定到GridView。我完全同意SqlCommand,但我不确定他的意图是否是保留SqlConnection以供以后使用,因为它已声明为类属性。不管怎么说,这超出了这个答案的范围。非常感谢你们——你们给了我很好的指导——尤其是你们Nguyen@WeryNguyen当前位置看代码,似乎他们都是成员。所以,忘了我说的吧!我完全同意SqlCommand,但我不确定他的意图是否是保留SqlConnection供以后使用,因为它已声明为类属性。不管怎么说,这超出了这个答案的范围。非常感谢你们——你们给了我很好的指导——尤其是你们Nguyen@WeryNguyen当前位置看代码,似乎他们都是成员。所以,忘了我说的吧!我完全同意SqlCommand,但我不确定他的意图是否是保留SqlConnection供以后使用,因为它已声明为类propert
Y不管怎么说,这超出了这个答案的范围。非常感谢你们——你们给了我很好的指导——尤其是你们Nguyen@WeryNguyen当前位置看代码,似乎他们都是成员。所以,忘了我说的吧!我完全同意SqlCommand,但我不确定他的意图是否是保留SqlConnection供以后使用,因为它已声明为类属性。不管怎么说,这超出了这个答案的范围。非常感谢你们——你们给了我很好的指导——尤其是你们Nguyen@WeryNguyen当前位置看代码,似乎他们都是成员。所以,忘了我说的吧!