c# - 数据表列不可访问 C# ASP.NET

标签 c# datatable pageload

我有这个数据表

public partial class class1
{
  private DataTable dt;
  protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
           dt.Columns.Add("Col1", System.Type.GetType("System.String"));
           dt.Columns.Add("Col2", System.Type.GetType("System.String"));
           bind();
        }
    }
}

private void bind()
{
    //database call
    //loop 
    dt.Rows.Add(col1_value.ToString(), col2_value.ToString(), col3.ToString());
    // populate the dropdown list with the database entries
}

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
   DataRow[] datarow;
   variable1=  DropDownList1.SelectedValue;
   datarow = dt.Select( dt.Columns["col1"] + DropDownList1.SelectedValue);
   variable2 = datarow.GetValue(1).ToString();
}

调用 selectedindexchange 事件时,会在行中显示错误 datarow = dt.Select( dt.Columns["col1"] + DropDownList1.SelectedValue); ,表示该列不存在。执行 selectedIndexChanged 时,数据表中的所有行和列都将从数据表中丢失。我在这里缺少什么?

我想避免将数据表存储在 session 或 View 状态中。另外,问题是为什么数据表变空了。有没有办法避免重新填充数据表中的所有回发? 如果我有一个字符串的类变量,它在回发后不会变空或变空。

最佳答案

删除 if (!IsPostBack) ....您每次回发时都必须填充数据表 dt,因为您没有将它存储在 View 状态或 session 中的任何位置....

关于c# - 数据表列不可访问 C# ASP.NET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3452716/

相关文章:

javascript - ReactJS动态创建数据表

javascript - 什么是计算实际(网页)页面加载时间的可靠方法

jquery - NProgress.js 显示页面加载进度

c# - 使用正则表达式返回数组/列表

c# - 使用 Linq "C#"提取 DataTable 值

c# - 方法重载和多态性

c# - 获取下拉列表值时避免回发 c# asp

c# - 阻止 ASP.NET 中的整数溢出

c# - DataTable 到 List<T> 的转换

带有 selectOneListbox 的 JSF dataTable