C# 将数据库值转换为HTML
我正在开发一个用C.Net 4.0编写的应用程序-基本上我有一个从数据库返回订单的存储过程…我正在将这些订单绑定到GridView- 代码隐藏 在HTML方面,我有以下代码 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=
<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当前位置看代码,似乎他们都是成员。所以,忘了我说的吧!