【问题标题】:The Page_Load calls the function, but nothing happensPage_Load 调用该函数,但没有任何反应
【发布时间】:2021-04-26 14:14:52
【问题描述】:

正如标题所示,我遇到了这个问题:该函数被调用,但它没有为我生成任何东西。

在有问题的函数中,我创建了一个带有DataRows 的DataTable,随后填充了它们。在Page_Load 中,我调用了该函数,但是当我在网页上启动调试时,什么也没有出现。错误可能在函数中,因为在进行调试时我注意到它被调用了

public partial class ElencoProvince : System.Web.UI.Page
{
    
   


    public void Page_Load(object sender, EventArgs e)
    
    {
         GetTable();

    }

     public static DataTable GetTable()
    
     {
        DataTable table = new DataTable();

        table.Columns.Add("Nome", typeof(string));
        table.Columns.Add("Cognome", typeof(string));
        table.Columns.Add("Azienda", typeof(string));
        table.Columns.Add("Provincia", typeof(string));

        DataRow row = table.NewRow();
        row["Nome"] = "Mario";
        row["Cognome"] = "Rossi";
        row["Azienda"] = "Pippo";
        row["Provincia"] = "Viterbo";
        table.Rows.Add(row);

        return table;
    }
   
}

谁能告诉我哪里错了?

【问题讨论】:

  • 您正在向返回 void 的函数返回一个值。您的 GetTable() 需要更新 Web 元素,或者 Page_Load() 需要对 GetTable() 的返回值进行处理

标签: c# asp.net webforms


【解决方案1】:

要查看您的表格,您需要将其添加到 GridView

 public void Page_Load(object sender, EventArgs e)
    
    {
       
      GridView gv = new GridView();
      gv.ID = "gv" ;
      gv.DataSource =   GetTable();
      gv.DataBind();
           
       this.Controls.Add(gv);
}

【讨论】:

    【解决方案2】:

    Page_Load 是一个 void 函数,不返回任何内容。 要查看数据,您需要将其绑定到屏幕上的某个控件。

    理想情况下,您还应该检查它是否是回发。

    Microsoft Docs on Gridview Databind

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-29
      • 2023-02-07
      相关资源
      最近更新 更多