我写了一个DataGrid,在里面每行都有数个TextBox控件在DataGrid外有一个Button,点击后可获取每行每列TextBox中用户输入的值在click事件中是这样写的string txtFactory=((TextBox)DataGrid1.Items[0].FindControl("txtFactory")).Text;为什么每次获取到的都是空值呢?请大家帮忙看看
解决方案 »
- 紧急求助:ie6下拖动iframe里的页面浏览器崩溃
- 绑定文本文件内容到repeater
- 键不能为空。参数名: key 这是什么错误?哪位高手好心人告诉我一下.谢谢
- 哭求~~~~~~`FreeTextBox问题
- 请问如何获取placeholder中动态控件的值
- vs.net 问题,急等...................................................
- 请问一下CSDN的图片新闻做法
- 在windows 2000 Server中安裝.NET Framework SDK後,訪問aspx網頁出現錯誤如何解決?
- asp.net 中有实现chart功能的控件吗
- sql 语句问题
- 服务器控件的使用问题
- 大家使用过ektron cms系统吗?
要不你写成下面这样的试试
(TextBox)e.Item.Cells[0].Controls[0]).Text.ToString()
DataGrid1.Items(0).Cells(4).Controls(0)
{
// 行数 从0开始的列数 固定的
CheckBox _Check=(CheckBox)dgQx.Items[i].Cells[2].Controls[2].FindControl("chkData");Label _labSxID = (Label)dgQx.Items[i].Cells[0].Controls[2].FindControl("labSxID");
if(_Check.Checked == true)
{
//1
objAccess.SxID = Convert.ToInt32(_labSxID.Text.Trim());
objAccess.SxValue = 1;
objAccess.OnUpdate();
}
else
{
//0
objAccess.SxID = Convert.ToInt32(_labSxID.Text.Trim());
objAccess.SxValue = 0;
objAccess.OnUpdate();
}
}
<asp:datagrid id="DataGrid1" style="Z-INDEX: 102; LEFT: 8px; POSITION: absolute; TOP: 208px" runat="server"
Width="100%" ForeColor="White" BorderColor="#3366CC" BorderStyle="None" BorderWidth="1px"
BackColor="White" CellPadding="4" ShowFooter="True" AutoGenerateColumns="False" HorizontalAlign="Center">
<SelectedItemStyle Font-Bold="True" ForeColor="#CCFF99" BackColor="#009999"></SelectedItemStyle>
<ItemStyle Font-Size="9pt" HorizontalAlign="Center" ForeColor="#003399" VerticalAlign="Middle"
BackColor="White"></ItemStyle>
<HeaderStyle Font-Size="9pt" Font-Bold="True" HorizontalAlign="Center" ForeColor="Black" BackColor="#EAEAF4"></HeaderStyle>
<FooterStyle Font-Size="9pt" HorizontalAlign="Center" ForeColor="Black" BackColor="White"></FooterStyle>
<Columns>
<asp:TemplateColumn HeaderText="配件名称">
<ItemTemplate>
<asp:Label ID="lblModel" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ID") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="生产厂家">
<ItemTemplate>
<asp:TextBox ID="txtFactory" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="配件规格">
<ItemTemplate>
<asp:TextBox ID="txtSpec" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="单位">
<ItemTemplate>
<asp:TextBox ID="txtUnit" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="序列号">
<ItemTemplate>
<asp:TextBox ID="ListNumber" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="备注">
<ItemTemplate>
<asp:TextBox ID="Re" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
事件代码如下string txtFactory=((TextBox)DataGrid1.Items[0].FindControl("txtFactory")).Text;改为string txtFactory=((TextBox)DataGrid1.Items[0].Cells[1].Controls[0].FindControl("txtFactory")).Text;也不行,请继续赐教
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
string txtFactory=((TextBox)DataGrid1.Items[0].FindControl("txtFactory")).Text;
}
如果是编辑项的话,判断条件就用e.Item.ItemType == ListItemType.EditItem就可以了
j看 看这篇文章
Response.Write("<script>alert('"+ tx1.Text+"')</script>");这样就可以了