Я пытаюсь сослаться на текст в текстовом поле ASP. NET, которое было загружено при нажатии кнопки в таблице HTML. Таблица stati c, но затем строки генерируются динамически с текстовыми полями. Я заново загрузил элементы управления, и значения остались в текстовых полях на почтовом ящике, но я получаю следующую ошибку: «Ссылка на объект не установлена для экземпляра объекта». Я предполагаю, что это потому, что ему не удалось найти текстовое поле в таблице должным образом. Единственное, что стоит упомянуть, это то, что я не использую пространство имен System.Web.UI.HtmlControls (так как мне казалось, что я получаю множество других ошибок, когда я это делал), поэтому мне приходится каждый раз вызывать его. Это как-то связано с этим?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Data;
using System.Web.UI.WebControls;
using System.Net;
using Newtonsoft.Json;
namespace Generic_name
{
public partial class Generatorwebform : System.Web.UI.Page
{
protected void Page_init(object sender, EventArgs e)
{
}
protected void Page_Load(object sender, EventArgs e)
{
if (this.IsPostBack)
{
Response.Write("This is a postback");
}
if (Convert.ToString(ViewState["Generated"]) == "true")
Getmarketdata();
}
protected void Getdatabtn_Click(object sender, EventArgs e)
{
Getmarketdata();
}
protected void Generatedatabtn_Click(object sender, EventArgs e)
{
Response.Write("Generate data button clicked");
if (Convert.ToString(ViewState["Generated"]) != "true")
{
Getmarketdata();
ViewState["Generated"] = "true";
}
else
{
Response.Write("viewstate already generated");
}
int GeneratorTableRows = GeneratorTable.Rows.Count;
Response.Write(GeneratorTableRows - 1);
///THIS PART IS THE PROBLEM
System.Web.UI.HtmlControls.HtmlTable Htmlgeneratortable = ((System.Web.UI.HtmlControls.HtmlTable)GeneratorTable);
TextBox txt = Htmlgeneratortable.Rows[1].FindControl("tbBbl") as TextBox;
Response.Write(txt.Text);
}
public void Getmarketdata()
{
String url = "https://www.genericapi.com";
Response.Write(url);
using (var webclient = new WebClient())
{
String Rawjson = webclient.DownloadString(url);
dynamic dobj = JsonConvert.DeserializeObject<dynamic>(Rawjson);
int noofrecords = dobj["properties"].Count;
Response.Write("<br />" + noofrecords);
for (int i = 0; i < noofrecords; i++)
{
System.Web.UI.HtmlControls.HtmlTableRow tRow = new System.Web.UI.HtmlControls.HtmlTableRow();
String RMlink = String.Format("https://www.genericapi.co.uk" + dobj["data"][i]["identifier"].ToString()) + ".html";
HyperLink hypLink = new HyperLink();
hypLink.Text = dobj["data"][i]["identifier"].ToString();
hypLink.Target = "_blank";
hypLink.NavigateUrl = RMlink;
using (System.Web.UI.HtmlControls.HtmlTableCell tb1 = new System.Web.UI.HtmlControls.HtmlTableCell())
{
tRow.Cells.Add(tb1);
tb1.Controls.Add(hypLink);
}
using (System.Web.UI.HtmlControls.HtmlTableCell tb2 = new System.Web.UI.HtmlControls.HtmlTableCell())
{
TextBox tbEPCe = new TextBox();
tRow.Cells.Add(tb2);
tb2.Controls.Add(tbEPCe);
tbEPCe.Style.Add("background", "none"); tbEPCe.Style.Add("border", "1px solid black"); tbEPCe.Style.Add("border-radius", "2px");
}
using (System.Web.UI.HtmlControls.HtmlTableCell tb3 = new System.Web.UI.HtmlControls.HtmlTableCell())
{
TextBox tbEPCp = new TextBox();
tRow.Cells.Add(tb3);
tb3.Controls.Add(tbEPCp);
tbEPCp.Style.Add("background", "none"); tbEPCp.Style.Add("border", "1px solid black"); tbEPCp.Style.Add("border-radius", "2px");
}
using (System.Web.UI.HtmlControls.HtmlTableCell tb4 = new System.Web.UI.HtmlControls.HtmlTableCell())
{
TextBox tbBbl = new TextBox();
tRow.Cells.Add(tb4);
tb4.Controls.Add(tbBbl);
tbBbl.Style.Add("background", "none"); tbBbl.Style.Add("border", "1px solid black"); tbBbl.Style.Add("border-radius", "2px");
}
GeneratorTable.Rows.Add(tRow);
ViewState["Generated"] = "true";
}
}
}
}
}