DataGrid模板列取值问题

问:

模板列一:
<asp:datagrid id="DataGrid1" runat="server" Font-Size="X-Small" Width="605" ShowHeader="False" AutoGenerateColumns="False">
<AlternatingItemStyle BackColor="LightSteelBlue"></AlternatingItemStyle>
 <Columns>
 <asp:TemplateColumn HeaderText="片编号">
 <HeaderStyle HorizontalAlign="Center" Width="50px" VerticalAlign="Middle"></HeaderStyle>
 <ItemStyle HorizontalAlign="Right"></ItemStyle>
 <ItemTemplate>
 <asp:Label runat="server" Width ="56px" Text='<%# DataBinder.Eval(Container, "DataItem.Picesid") %>' ID="Label2">
 </asp:Label>
 </ItemTemplate>
 <FooterStyle HorizontalAlign="Center" VerticalAlign="Middle"></FooterStyle>
 </asp:TemplateColumn>
 </Columns>
</asp:datagrid>

模板列二:

            <asp:TemplateColumn HeaderText="身份证号">
                <ItemTemplate>
                    <asp:Label ID="Label" runat="server" Text='<%# DataBinder.Eval(Container,"DataItem.trad")%>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateColumn>

取值:
我用
 ((string)((TextBox)MyDataGrid.Items[j].Cells[i].Controle[j])).Text.ToString()
取单元格中的数据,系统编译不通过错误是:
 error CS0104: “TextBox”是不明确的引用
请高手指点
______________________________________________________________________________________________
答1:
我又改为
((string)((Label)MyDataGrid.Items[j].Cells[i].Controle[j])).Text.ToString()
取单元格中的数据,系统编译不通过错误是:
 error CS0104: “Label”是不明确的引用
如果强行运行,我取出的值为空

______________________________________________________________________________________________
答2:
你要根据情况获取DataGrid中的控件的值,看你的写法说明你是要获取DataGrid中所有列中包含TextBox文本框中的数值, 不如判断一下是否已经找到这个控件再判断取值,我这有VB.net的写法,请见量:
  For j = 0 To MyDataGrid.Items.Count - 1
      For i = 0 To MyDataGrid.Items.Cells.Count - 1
          If  Not Ctype(MyDataGrid.Items(j).Cells(i).Controls,TextBox) _
              Is Nothing Then
              strValue = Ctype(MyDataGrid.Items(j).Cells(i).Controls,TextBox).Text
          End If
      Next i
  Next j
______________________________________________________________________________________________
答3:
看看下面的方法如何?? 没有测试过,估计应该可以的。

<asp:datagrid id="DataGrid1" runat="server" Font-Size="X-Small" Width="605" ShowHeader="False" AutoGenerateColumns="False">
<AlternatingItemStyle BackColor="LightSteelBlue"></AlternatingItemStyle>
 <Columns>
 <asp:TemplateColumn HeaderText="片编号">
 <HeaderStyle HorizontalAlign="Center" Width="50px" VerticalAlign="Middle"></HeaderStyle>
 <ItemStyle HorizontalAlign="Right"></ItemStyle>
 <ItemTemplate>
 <%# DataBinder.Eval(Container, "DataItem.Picesid") %>
</ItemTemplate>
 <FooterStyle HorizontalAlign="Center" VerticalAlign="Middle"></FooterStyle>
 </asp:TemplateColumn>
 </Columns>
</asp:datagrid>

访问:
MyDataGrid.Items[j].Cells[i].Text;

转载于:https://www.cnblogs.com/dekevin/archive/2012/05/05/2484629.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值