为数据视图中的控件指定一个值

本文关键字:一个 视图 数据 控件 | 更新日期: 2023-09-27 18:18:44

我想根据下拉列表的选定值为文本框分配一个值。但是我试着得到错误

"对象引用未设置为对象的实例"

下面是我的代码:
foreach (GridViewRow gvr in cgvRequest.Rows)
{
    //Programmatically access the CheckBox from the TemplateField
    //CheckBoxField chk = (CheckBoxField)gvr.FindControl("chkMark");
    Label lbl = (Label)gvr.FindControl("lblRequestAmount");
    TextBox _txtAmount = (TextBox)cgvRequest.FindControl("txtAmount");
    lbl.Text = Convert.ToString(
                   requestinfo.ElementAt(gvr.RowIndex).AmountRequested);
    DropDownList ddl = new DropDownList();
    ddl = (DropDownList)cgvRequest.FindControl("ddlApprovalType");
    ddl.SelectedValue = "A";
    _txtAmount.Text = lbl.Text;
}

为数据视图中的控件指定一个值

你得到

的原因

"对象引用未设置为对象的实例"

表示您试图将属性设置为null的控件(下拉列表和/或文本框)。这意味着它不能被FindControl()方法找到。

我只是假设这是因为我不能调试你的代码,但我打赌这是因为你在数据网格上调用FindControl,而不是在行上。

试着把你的代码改成:

TextBox _txtAmount = (TextBox)gvr.FindControl("txtAmount");

DropDownList ddl = new DropDownList();
ddl = (DropDownList)gvr.FindControl("ddlApprovalType");

如果你的文本框"txtAmount"和下拉列表"ddlApprovalType"是在gridview行,那么为什么你试图从gridview本身得到这个。您应该使用与标签"lblRequestAmount"相同的代码。TextBox _txtAmount = (TextBox)gvr.FindControl("txtAmount");如果这不能解决你的问题,请让我知道。请张贴更多的细节,如在哪一行你得到这个错误。并发布你的gridview设计器代码。

检查标签。文本获取值或为空。然后将值赋给文本框。

你从最后两行得到了一个错误,对吗?

你可以给我你的代码后面的代码,gridview设计器代码以及事件的完整代码…?

其实你在尝试什么?给我解释清楚…?