紧急求助!datagrid数据保存问题!!! 在线恭候高手指点! 哈哈,也可以吧,好像,用e.item试试 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你应该会在Footer上放一个用于提交的Button的.你定义这个Button的CommandName="Add".然后在DataGrid的ItemCommand里判断CommandName, 如果是"Add", 那么e.Item就是Footer了, 就可以用e.Item.FindControl(). 在Footer上放一个用于提交的Button?这方法好象可行,试试先! 当然, 你也可以用循环找出Footerforeach (DataGridItem gridItem in DataGrid.Controls[0].Controls){ if (gridItem.ItemType == ListItemType.Footer) { }} 加不了啊!兄弟!能不能说详细点儿?<FooterStyle ForeColor="#FF0099" BackColor="#009999"> 这里吗?出错哦!</FooterStyle> http://community.csdn.net/Expert/topic/3134/3134358.xml?temp=.5690424帮忙看看!大哥们!急得很! <asp:datagrid id="dtgrid" style="Z-INDEX: 101; LEFT: 18px; POSITION: absolute; TOP: 187px" runat="server" Width="1004px" Height="24px" BorderStyle="None" BorderColor="#3366CC" BorderWidth="1px" BackColor="White" CellPadding="4" AutoGenerateColumns="False"> <SelectedItemStyle Wrap="False" ForeColor="#CCFF99" BackColor="#009999"></SelectedItemStyle> <EditItemStyle Wrap="False"></EditItemStyle> <ItemStyle ForeColor="#003399" BackColor="White"></ItemStyle> <HeaderStyle Font-Bold="True" ForeColor="#CCCCFF" BackColor="#003399"></HeaderStyle> <FooterStyle ForeColor="#FF0099" BackColor="#009999"></FooterStyle> <Columns> <asp:ButtonColumn Text="選擇" CommandName="Select" HeaderText="選擇" HeaderStyle-Width="40px"> <ItemStyle Width="40px"></ItemStyle> </asp:ButtonColumn> <asp:TemplateColumn HeaderText="料品編號" HeaderStyle-Width="100px"> <ItemTemplate> <asp:Button CommandName="Add" OnCommand="dtgrid_AddData"></asp:Button> <asp:Label Width="100px" Runat="server" ID="lblItemCode" Text='<%#DataBinder.Eval(Container.DataItem,"ItemCode")%>'> </asp:Label> </ItemTemplate> <FooterTemplate> <asp:TextBox Runat="server" Width="100px" ID="footerItemCode"></asp:TextBox> </FooterTemplate> <EditItemTemplate> <asp:TextBox Width="100px" Runat=server ID="txtItemCode" Font-Bold="False" Text='<%#DataBinder.Eval(Container.DataItem,"ItemCode")%>'> </asp:TextBox> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="品名" HeaderStyle-Width="300px"> <ItemTemplate> <asp:Label Width="300px" Runat="server" ID="lblItemName" Text='<%#DataBinder.Eval(Container.DataItem,"ItemName")%>'> </asp:Label> </ItemTemplate> <FooterTemplate> <asp:TextBox Runat="server" Width="300px" ID="footerItemName"></asp:TextBox> </FooterTemplate> <EditItemTemplate> <asp:TextBox Width="300px" Runat=server ID="txtItemName" Font-Bold="False" Text='<%#DataBinder.Eval(Container.DataItem,"ItemName")%>'> </asp:TextBox> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="規格" HeaderStyle-Width="300px"> <ItemTemplate> <asp:Label Width="300px" Runat="server" ID="lblItemSpecs" Text='<%#DataBinder.Eval(Container.DataItem,"ItemSpecs")%>'> </asp:Label> </ItemTemplate> <FooterTemplate> <asp:TextBox Runat="server" Width="300px" ID="footerItemSpecs"></asp:TextBox> </FooterTemplate> <EditItemTemplate> <asp:TextBox Width="300px" Runat=server ID="txtItemSpecs" Font-Bold="False" Text='<%#DataBinder.Eval(Container.DataItem,"ItemSpecs")%>'> </asp:TextBox> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="數量" HeaderStyle-Width="50px"> <ItemTemplate> <asp:Label Width="50px" Runat="server" ID="lblQty" Text='<%#DataBinder.Eval(Container.DataItem,"Qty")%>'> </asp:Label> </ItemTemplate> <FooterTemplate> <asp:TextBox Runat="server" Width="50px" ID="footerQty"></asp:TextBox> </FooterTemplate> <EditItemTemplate> <asp:TextBox Width="50px" Runat=server ID="txtQty" Font-Bold="False" Text='<%#DataBinder.Eval(Container.DataItem,"Qty")%>'> </asp:TextBox> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="單位" HeaderStyle-Width="50px"> <ItemTemplate> <asp:Label Width="50px" Runat="server" ID="lblUnit" Text='<%#DataBinder.Eval(Container.DataItem,"Unit")%>'> </asp:Label> </ItemTemplate> <FooterTemplate> <asp:TextBox Runat="server" Width="50px" ID="footerUnit"></asp:TextBox> </FooterTemplate> <EditItemTemplate> <asp:TextBox Width="50px" Runat=server ID="txtUnit" Font-Bold="False" Text='<%#DataBinder.Eval(Container.DataItem,"Unit")%>'> </asp:TextBox> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn HeaderText="備注" HeaderStyle-Width="80px"> <ItemTemplate> <asp:Label Width="80px" Runat="server" ID="lblRe" Text='<%#DataBinder.Eval(Container.DataItem,"Re")%>'> </asp:Label> </ItemTemplate> <FooterTemplate> <asp:TextBox Runat="server" Width="80px" ID="footerRe"></asp:TextBox> </FooterTemplate> <EditItemTemplate> <asp:TextBox Width="100px" Runat=server ID="txtRe" Font-Bold="False" Text='<%#DataBinder.Eval(Container.DataItem,"Re")%>'> </asp:TextBox> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn Visible="False" HeaderText="轉換率"> <ItemTemplate> <asp:Label Width="50px" Runat="server" ID="lblRate" Text='<%#DataBinder.Eval(Container.DataItem,"Rate")%>'> </asp:Label> </ItemTemplate> <FooterTemplate> <asp:TextBox Runat="server" Width="50px" ID="footerRate"></asp:TextBox> </FooterTemplate> <EditItemTemplate> <asp:TextBox Width="50px" Runat=server ID="txtRate" Font-Bold="False" Text='<%#DataBinder.Eval(Container.DataItem,"Rate")%>'> </asp:TextBox> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn Visible="False" HeaderText="轉換數量"> <ItemTemplate> <asp:Label Width="50px" Runat="server" ID="lblChangeQty" Text='<%#DataBinder.Eval(Container.DataItem,"ChangeQty")%>'> </asp:Label> </ItemTemplate> <FooterTemplate> <asp:TextBox Runat="server" Width="50px" ID="footerChangeQty"></asp:TextBox> </FooterTemplate> <EditItemTemplate> <asp:TextBox Width="50px" Runat=server ID="txtChangeQty" Font-Bold="False" Text='<%#DataBinder.Eval(Container.DataItem,"ChangeQty")%>'> </asp:TextBox> </EditItemTemplate> </asp:TemplateColumn> <asp:TemplateColumn Visible="False" HeaderText="庫存單位"> <ItemTemplate> <asp:Label Width="50px" Runat="server" ID="lblStoreUnit" Text='<%#DataBinder.Eval(Container.DataItem,"ChangeUnit")%>'> </asp:Label> </ItemTemplate> <FooterTemplate> <asp:TextBox Runat="server" Width="50px" ID="footerStoreUnit"></asp:TextBox> </FooterTemplate> <EditItemTemplate> <asp:TextBox Width="50px" Runat=server ID="txtStoreUnit" Font-Bold="False" Text='<%#DataBinder.Eval(Container.DataItem,"ChangeUnit")%>'> </asp:TextBox> </EditItemTemplate> </asp:TemplateColumn> </Columns> <PagerStyle HorizontalAlign="Left" ForeColor="#003399" BackColor="#99CCCC" Mode="NumericPages"></PagerStyle> </asp:datagrid> 1. 没有把ShowFooter设为True.2. 没有看到在某个FooterTemplate里有Button <asp:TemplateColumn HeaderText="高度"><ItemTemplate><asp:Label Runat=server text='<%# DataBinder.Eval(Container, "DataItem.CapHight")%>' ID="Label5"></asp:Label></ItemTemplate><FooterTemplate><asp:TextBox Runat="server" ID="CapHight_footer" size="6" MaxLength="10" CssClass="NobgUinput1" onblur="check_num(this)">0</asp:TextBox></FooterTemplate></asp:TemplateColumn>在cs文件中:TextBox tempBox;tempBox = ((TextBox)e.Item.FindControl("CapHight_footer"));就可以找到了。 private void Datagrid_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { if(e.Item.ItemType == ListItemType.Header) { e.Item.Cells[0].Text = "儿童编号"; e.Item.Cells[1].Text = "儿童姓名"; e.Item.Cells[2].Text = "儿童年龄"; } } private void Datagrid_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { if(e.Item.ItemType == ListItemType.footer) { e.Item.Cells[0].Text = "儿童编号"; e.Item.Cells[1].Text = "儿童姓名"; e.Item.Cells[2].Text = "儿童年龄"; } } 多谢各位兄弟帮忙!终于解决!其实:dtgrid.Controls[0].Controls[0]就是headerint i=dtgrid.Controls[0].Controls.Count-1;则:dtgrid.Controls[0].Controls[i-1]就是footer再次感谢楼上的各位兄弟!结贴! 不好意思!上面有笔误dtgrid.Controls[0].Controls[0]就是headerint i=dtgrid.Controls[0].Controls.Count-1;则:dtgrid.Controls[0].Controls[i]就是footer 使用DREAM WEAVER+ACCESS 制作动态网站 只第一次运行成功 下次就报错 共用dataset Gridview 问题 急 急 急 急 急 急 急 急 急 petshop4.0 是小项目吗?还有更好的开源的东西吗? 求ASP.NET比较深入的书籍及学习方式(up有分) 编译器错误信息: CS1010: 常数中有换行符 是什么意思? 请教:如何得到控件名? 关于关闭页面的问题 关于页面刷新问题? 初学者求教 如何把一个SqlDataReader添加到DataSet里面 求助,关于水晶报表的古怪问题~~~
然后在DataGrid的ItemCommand里判断CommandName, 如果是"Add", 那么e.Item就是Footer了, 就可以用e.Item.FindControl().
foreach (DataGridItem gridItem in DataGrid.Controls[0].Controls)
{
if (gridItem.ItemType == ListItemType.Footer)
{
}
}
<FooterStyle ForeColor="#FF0099" BackColor="#009999">
这里吗?出错哦!
</FooterStyle>
<SelectedItemStyle Wrap="False" ForeColor="#CCFF99" BackColor="#009999"></SelectedItemStyle>
<EditItemStyle Wrap="False"></EditItemStyle>
<ItemStyle ForeColor="#003399" BackColor="White"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="#CCCCFF" BackColor="#003399"></HeaderStyle>
<FooterStyle ForeColor="#FF0099" BackColor="#009999"></FooterStyle>
<Columns>
<asp:ButtonColumn Text="選擇" CommandName="Select" HeaderText="選擇" HeaderStyle-Width="40px">
<ItemStyle Width="40px"></ItemStyle>
</asp:ButtonColumn>
<asp:TemplateColumn HeaderText="料品編號" HeaderStyle-Width="100px">
<ItemTemplate>
<asp:Button CommandName="Add" OnCommand="dtgrid_AddData"></asp:Button>
<asp:Label Width="100px" Runat="server" ID="lblItemCode" Text='<%#DataBinder.Eval(Container.DataItem,"ItemCode")%>'>
</asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox Runat="server" Width="100px" ID="footerItemCode"></asp:TextBox>
</FooterTemplate>
<EditItemTemplate>
<asp:TextBox Width="100px" Runat=server ID="txtItemCode" Font-Bold="False" Text='<%#DataBinder.Eval(Container.DataItem,"ItemCode")%>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="品名" HeaderStyle-Width="300px">
<ItemTemplate>
<asp:Label Width="300px" Runat="server" ID="lblItemName" Text='<%#DataBinder.Eval(Container.DataItem,"ItemName")%>'>
</asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox Runat="server" Width="300px" ID="footerItemName"></asp:TextBox>
</FooterTemplate>
<EditItemTemplate>
<asp:TextBox Width="300px" Runat=server ID="txtItemName" Font-Bold="False" Text='<%#DataBinder.Eval(Container.DataItem,"ItemName")%>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="規格" HeaderStyle-Width="300px">
<ItemTemplate>
<asp:Label Width="300px" Runat="server" ID="lblItemSpecs" Text='<%#DataBinder.Eval(Container.DataItem,"ItemSpecs")%>'>
</asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox Runat="server" Width="300px" ID="footerItemSpecs"></asp:TextBox>
</FooterTemplate>
<EditItemTemplate>
<asp:TextBox Width="300px" Runat=server ID="txtItemSpecs" Font-Bold="False" Text='<%#DataBinder.Eval(Container.DataItem,"ItemSpecs")%>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="數量" HeaderStyle-Width="50px">
<ItemTemplate>
<asp:Label Width="50px" Runat="server" ID="lblQty" Text='<%#DataBinder.Eval(Container.DataItem,"Qty")%>'>
</asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox Runat="server" Width="50px" ID="footerQty"></asp:TextBox>
</FooterTemplate>
<EditItemTemplate>
<asp:TextBox Width="50px" Runat=server ID="txtQty" Font-Bold="False" Text='<%#DataBinder.Eval(Container.DataItem,"Qty")%>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="單位" HeaderStyle-Width="50px">
<ItemTemplate>
<asp:Label Width="50px" Runat="server" ID="lblUnit" Text='<%#DataBinder.Eval(Container.DataItem,"Unit")%>'>
</asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox Runat="server" Width="50px" ID="footerUnit"></asp:TextBox>
</FooterTemplate>
<EditItemTemplate>
<asp:TextBox Width="50px" Runat=server ID="txtUnit" Font-Bold="False" Text='<%#DataBinder.Eval(Container.DataItem,"Unit")%>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="備注" HeaderStyle-Width="80px">
<ItemTemplate>
<asp:Label Width="80px" Runat="server" ID="lblRe" Text='<%#DataBinder.Eval(Container.DataItem,"Re")%>'>
</asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox Runat="server" Width="80px" ID="footerRe"></asp:TextBox>
</FooterTemplate>
<EditItemTemplate>
<asp:TextBox Width="100px" Runat=server ID="txtRe" Font-Bold="False" Text='<%#DataBinder.Eval(Container.DataItem,"Re")%>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn Visible="False" HeaderText="轉換率">
<ItemTemplate>
<asp:Label Width="50px" Runat="server" ID="lblRate" Text='<%#DataBinder.Eval(Container.DataItem,"Rate")%>'>
</asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox Runat="server" Width="50px" ID="footerRate"></asp:TextBox>
</FooterTemplate>
<EditItemTemplate>
<asp:TextBox Width="50px" Runat=server ID="txtRate" Font-Bold="False" Text='<%#DataBinder.Eval(Container.DataItem,"Rate")%>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn Visible="False" HeaderText="轉換數量">
<ItemTemplate>
<asp:Label Width="50px" Runat="server" ID="lblChangeQty" Text='<%#DataBinder.Eval(Container.DataItem,"ChangeQty")%>'>
</asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox Runat="server" Width="50px" ID="footerChangeQty"></asp:TextBox>
</FooterTemplate>
<EditItemTemplate>
<asp:TextBox Width="50px" Runat=server ID="txtChangeQty" Font-Bold="False" Text='<%#DataBinder.Eval(Container.DataItem,"ChangeQty")%>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn Visible="False" HeaderText="庫存單位">
<ItemTemplate>
<asp:Label Width="50px" Runat="server" ID="lblStoreUnit" Text='<%#DataBinder.Eval(Container.DataItem,"ChangeUnit")%>'>
</asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox Runat="server" Width="50px" ID="footerStoreUnit"></asp:TextBox>
</FooterTemplate>
<EditItemTemplate>
<asp:TextBox Width="50px" Runat=server ID="txtStoreUnit" Font-Bold="False" Text='<%#DataBinder.Eval(Container.DataItem,"ChangeUnit")%>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle HorizontalAlign="Left" ForeColor="#003399" BackColor="#99CCCC" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
2. 没有看到在某个FooterTemplate里有Button
<ItemTemplate>
<asp:Label Runat=server text='<%# DataBinder.Eval(Container, "DataItem.CapHight")%>' ID="Label5">
</asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox Runat="server" ID="CapHight_footer" size="6" MaxLength="10" CssClass="NobgUinput1" onblur="check_num(this)">0</asp:TextBox>
</FooterTemplate>
</asp:TemplateColumn>
在cs文件中:
TextBox tempBox;
tempBox = ((TextBox)e.Item.FindControl("CapHight_footer"));
就可以找到了。
{
if(e.Item.ItemType == ListItemType.Header)
{
e.Item.Cells[0].Text = "儿童编号";
e.Item.Cells[1].Text = "儿童姓名";
e.Item.Cells[2].Text = "儿童年龄";
}
}
{
if(e.Item.ItemType == ListItemType.footer)
{
e.Item.Cells[0].Text = "儿童编号";
e.Item.Cells[1].Text = "儿童姓名";
e.Item.Cells[2].Text = "儿童年龄";
}
}
其实:dtgrid.Controls[0].Controls[0]就是header
int i=dtgrid.Controls[0].Controls.Count-1;
则:dtgrid.Controls[0].Controls[i-1]就是footer
再次感谢楼上的各位兄弟!
结贴!
dtgrid.Controls[0].Controls[0]就是header
int i=dtgrid.Controls[0].Controls.Count-1;
则:dtgrid.Controls[0].Controls[i]就是footer