如何在.CS文件中实现datagrid的模板列(template)?

Alwin_Lee 2002-01-15 04:44:19
...全文
86 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hdg_sy 2002-02-01
  • 打赏
  • 举报
回复
继承ITemplate类
实现public void InstantiateIn(Control container) 接口
龙腾九霄 2002-01-22
  • 打赏
  • 举报
回复
别食言哦,要给分我,大礼包。。
<%@ Import Namespace="System.Data" %>

<html>
<script language="C#" runat="server">

DataView CartView;
Double runningTotal = 0;

//Cart is a property on the Page
DataTable Cart {
get {
if (Session["DGC_ShoppingCart"] == null) {
DataTable tmpCart = new DataTable();
tmpCart.Columns.Add(new DataColumn("Qty", typeof(string)));
tmpCart.Columns.Add(new DataColumn("Product", typeof(string)));
tmpCart.Columns.Add(new DataColumn("Price", typeof(Double)));
tmpCart.Columns.Add(new DataColumn("GiftWrap", typeof(bool)));
Session["DGC_ShoppingCart"] = tmpCart;

// first load -- prepopulate with some data
for (int i=1; i<=6; i++) {
DataRow dr = tmpCart.NewRow();
dr[0] = "1";
dr[1] = "Product " + i.ToString();
dr[2] = 1.23 * (i+1);
dr[3] = false;
tmpCart.Rows.Add(dr);
}
return tmpCart;
}
else
return (DataTable)Session["DGC_ShoppingCart"];
}
}

void Page_Init(Object sender, EventArgs e) {
MyDataGrid.EnableViewState=true;
}

void Page_Load(Object sender, EventArgs e) {
CartView = Cart.DefaultView;
if (!IsPostBack)
BindGrid();
}

void BindGrid() {
MyDataGrid.DataSource = CartView;
MyDataGrid.DataBind();
}

void btnUpdate_click(Object sender, EventArgs e) {

for (int i=0; i<MyDataGrid.Items.Count; i++) {

DataGridItem _item = MyDataGrid.Items[i];
TextBox qtyTextBox = (TextBox)_item.FindControl("txtQty");
CheckBox giftCheckBox = (CheckBox)_item.FindControl("chkGift");

// with a database, we'd use an update command.
// since this is an in-memory datatable, we'll just change the in-memory row.
DataRow dr = Cart.Rows[i];
dr[0] = qtyTextBox.Text;
dr[3] = giftCheckBox.Checked;
}
BindGrid();
}


Double CalcTotal (int count, Double price) {
Double total = count * price;
runningTotal += total;

return(total);
}

</script>

<body>

<h3><font face="Verdana">Custom Editing with DataGrid</font></h3>

<form runat=server>

<ASP:DataGrid id="MyDataGrid" runat="server"
BorderColor="black"
BorderWidth="1"
GridLines="none"
CellPadding="4"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
AutoGenerateColumns="false"
>
<Columns>
<asp:TemplateColumn HeaderText="Quantity">
<ItemTemplate>
<asp:TextBox id=txtQty runat="server"
Text='<%# DataBinder.Eval(Container, "DataItem.Qty") %>'
Width="40px"
/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn HeaderText="Product" DataField="Product"/>
<asp:BoundColumn HeaderText="Price" DataField="Price" DataFormatString="{0:c}" />
<asp:TemplateColumn HeaderText="Gift Wrap?">
<ItemTemplate>
<center>
<asp:CheckBox id=chkGift runat="server"
Checked='<%# (bool)(((DataRowView)Container.DataItem)["GiftWrap"]) %>'
/>
</center>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="SubTotal">
<ItemTemplate>
<p align="right">
<asp:Label runat="server"
Text='<%# String.Format("{0:c}",CalcTotal((Int32.Parse((string)(((DataRowView)Container.DataItem)["Qty"]))),((Double)(((DataRowView)Container.DataItem)["Price"])))) %>'
/>
</p>
</ItemTemplate>
<FooterTemplate>
<p align="right"><b>
<asp:Label runat="server"
Text='<%# String.Format("{0:c}", runningTotal) %></b>'
/>
</b></p>
</FooterTemplate>

</asp:TemplateColumn>
</Columns>

</asp:DataGrid>

<asp:LinkButton id=btnUpdate runat="server"
Text="Update Totals"
Font-Name="Verdana"
Font-Size="8pt"
onClick="btnUpdate_click"
/>

</form>

</body>
</html>
BruceZhang 2002-01-17
  • 打赏
  • 举报
回复
以下程序说明,适用于Bate2版
首先要用到三个控件:

1. SqlConnection 的ConnectionString 等于链接的数据库;
2. Sq1DataAdapter 链接到SqlConnection上;
3. dataSet 设置它链接到SqlDataAdapter上。

以上步骤其实很简单的,试着连几次就可以连上了。
然后,把 datagrid 放在Web页上,点它
属性->属性生成器

然后在:常规 下选择数据源 和数据成员 及数据键字段

然后写如下程序:
private void BindGrid()
{
this.sqlDataAdapter1.Fill(this.DataSet11);
this.DataGrid1.DataBind();
}

private void Page_Load(object sender, System.EventArgs e)
{
if(this.IsPostBack) return;
BindGrid();
}

然后,选择“生成”,再在浏览器中查看就行了。

以上程序保证运行无误!

hdg_sy 2002-01-16
  • 打赏
  • 举报
回复
关注!!!
Alwin_Lee 2002-01-16
  • 打赏
  • 举报
回复
如有哪位朋友能解答这个问题,另送一个大礼包!!!
zwyl2001 2002-01-15
  • 打赏
  • 举报
回复
用C#语法实现模板列的数据绑定。
icyer 2002-01-15
  • 打赏
  • 举报
回复
什么意思?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧