Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何解决“Policy_No”列不属于表的问题?_Asp.net_Gridview_Buttonclick - Fatal编程技术网

Asp.net 如何解决“Policy_No”列不属于表的问题?

Asp.net 如何解决“Policy_No”列不属于表的问题?,asp.net,gridview,buttonclick,Asp.net,Gridview,Buttonclick,我有一个简单的界面,有一个文本框、按钮和一个gridview。我想在单击按钮时在gridview中显示数字。但我得到一个异常,说“Policy_No”列不属于表。我应该怎么做才能解决它。在这里,我添加了下面的代码 按钮点击事件 protected void btnAdd_Click(object sender, EventArgs e) { dt = new DataTable(); dr = dt.NewRow(); dr["Policy_No"] = txtPolic

我有一个简单的界面,有一个文本框、按钮和一个gridview。我想在单击按钮时在gridview中显示数字。但我得到一个异常,说“Policy_No”列不属于表。我应该怎么做才能解决它。在这里,我添加了下面的代码

按钮点击事件

protected void btnAdd_Click(object sender, EventArgs e)
{
    dt = new DataTable();
    dr = dt.NewRow();
    dr["Policy_No"] = txtPolicy.Text.Trim();
    dt.Rows.Add(dr);
    grdPolicy.DataSource = dt;
    grdPolicy.DataBind();
}
页面加载代码

protected void Page_Load(object sender, EventArgs e)
{
    dt = new DataTable();
    dt.Columns.Add(new DataColumn("Policy_No", typeof(string)));
    if (!IsPostBack)
    {
        loadCompetitionsNames();
    }
}
您正在btnAdd_单击中创建新的数据表,但没有列策略\u No

您正在btnAdd_单击中创建新的数据表,但没有列策略\u No


在按钮单击事件中添加列定义

public DataTable GetGridData()
{
    dt = new DataTable();
    dt.Columns.Add(new DataColumn("Policy_No", typeof(string)));
    dr = dt.NewRow();
    dr["Policy_No"] = txtPolicy.Text.Trim();
    dt.Rows.Add(dr);
    return dt;
} 

protected void btnAdd_Click(object sender, EventArgs e)
{
    grdPolicy.DataSource = GetGridData();
    grdPolicy.DataBind();
}
从页面加载中删除dtDataTable的初始化

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
         loadCompetitionsNames();
    }
}

您可以使用会话在页面回发上保留dt数据

在按钮单击事件中添加列定义

public DataTable GetGridData()
{
    dt = new DataTable();
    dt.Columns.Add(new DataColumn("Policy_No", typeof(string)));
    dr = dt.NewRow();
    dr["Policy_No"] = txtPolicy.Text.Trim();
    dt.Rows.Add(dr);
    return dt;
} 

protected void btnAdd_Click(object sender, EventArgs e)
{
    grdPolicy.DataSource = GetGridData();
    grdPolicy.DataBind();
}
从页面加载中删除dtDataTable的初始化

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
         loadCompetitionsNames();
    }
}

您可以使用session将dt数据保留在页面回发上

它可以正常工作。谢谢你的回答。但我还是不能接受这个答案。但是我肯定会这样做。我怎样才能一个接一个地将多个值添加到网格中?你说的一个接一个是什么意思?要为每个按钮单击添加一行。在这段代码中,它将替换当前值。然后您需要将dt存储在会话中,或者可能在缓存中以检索旧值。它可以工作。谢谢你的回答。但我还是不能接受这个答案。但是我肯定会这样做。我怎样才能一个接一个地将多个值添加到网格中?你说的一个接一个是什么意思?要为每个按钮单击添加一行。在这段代码中,它将替换当前值。然后您需要将dt存储在会话中,或者可能在缓存中以检索旧值。