从DetailsView获取BoundField的值

 唯忻小十__ 发布于 2023-02-12 18:29

我似乎总是对此有问题。我在视图外部有一个按钮,它调用需要一个的函数OrderNumber。我不断出错

ArgumentOutOfRangeException was unhandled by user code

在调试模式下,或者在浏览器中,

Specified argument was out of the range of valid values.

这就是我访问它的方式:

string sOrderNumber = (Order_DetailsView.Rows[0].Cells[0].Controls[0] as TextBox).Text;
int orderNumber = Int32.Parse(sOrderNumber);

我也尝试过((TextBox)Order_DetailsView.Rows[0].Cells[0].Controls[0]).Text索引的所有组合Rows[i].Cells[i].Controls[i],我可以理解。

这是DetailsView:


    
        
        
        
    

我只是做错了吗?我已经查看了所有可以找到的示例,并且我的代码看起来合法。我觉得我必须忽略一些简单的事情。

1 个回答
  • 应该有一个TemplateField如下:

    <asp:DetailsView ID="Order_DetailsView" runat="server" AutoGenerateRows="False">
    <Fields>
        <asp:BoundField DataField="OrderNumber" HeaderText="Order #" />
        <asp:BoundField DataField="GST" HeaderText="GST" DataFormatString="{0:c}" />
        <asp:BoundField DataField="Total" HeaderText="Total" DataFormatString="{0:c}" />
        <asp:TemplateField HeaderText="Order Number">                
            <ItemTemplate>
                <asp:TextBox ID="txtOrderNo" runat="server" Text='<%# Bind("OrderNumber") %>'></asp:TextBox>
            </ItemTemplate>                    
        </asp:TemplateField>
    </Fields>
    </asp:DetailsView>
    

    然后,您可以通过以下方式访问它:

    string sOrderNumber = ((TextBox)Order_DetailsView.Rows[0].Cells[0].FindControl("txtOrderNo")).Text;
    

    为了获得BoundField价值,您可以这样:

    protected void Order_DetailsView_DataBound(object sender, EventArgs e)
    {
        string MyOrderNumber = Order_DetailsView.Rows[0].Cells[0].Text;
    }
    

    2023-02-12 18:32 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有