私は正しい値を得るためにお互いに分ける方法がわからない3つのTextboxes
を持っています。私はTextboxes
をGetTrix();
に作成し、の値をの値に変更しようとすると、違いがないので間違っています。コントロール内の異なるテキストボックスを区切る方法は?
protected void btnUpdate_Click(object sender, EventArgs e)
{
string TrixName = null;
string TrixID = null;
string Hardness = null;
string Webpage = null;
foreach (Control c in phdTrix.Controls)
{
if (c.GetType() == typeof(TextBox))
{
//This is where there is no difference between the textboxes
TrixName = (c as TextBox).Text;
TrixID = (c as TextBox).ID;
Hardness = (c as TextBox).Text;
Webpage = (c as TextBox).Text;
UpdateTrix(TrixID, TrixName, Hardness, Webpage);
}
}
}
private void GetTrix()
{
DataTable table = CategoryAccess.GetAllTrix();
for (int i = 0; i < table.Rows.Count; i++)
{
TextBox textbox = new TextBox();
textbox.ID = table.Rows[i]["TrixID"].ToString();
textbox.Text = table.Rows[i]["TrixName"].ToString();
Literal literal1 = new Literal();
literal1.Text = "<p>";
TextBox textbox2 = new TextBox();
textbox2.Text = table.Rows[i]["Hardness"].ToString();
TextBox textbox3 = new TextBox();
textbox3.Text = table.Rows[i]["Webpage"].ToString();
Literal literal2 = new Literal();
literal2.Text = "</p>";
phdTrix.Controls.Add(literal1);
phdTrix.Controls.Add(textbox);
phdTrix.Controls.Add(textbox2);
phdTrix.Controls.Add(textbox3);
phdTrix.Controls.Add(literal2);
}
}
これはロジックソリューションです。しかし、用量の仕事。
TrixName = (c as TextBox textbox).Text;
Hardness = (c as TextBox textbox2).Text;
Webpage = (c as TextBox textbox3).Text;
新しいコード:
protected void btnUpdate_Click(object sender, EventArgs e)
{
string TrixID = null;
string TrixName = null;
string Hardness = null;
string Webpage = null;
foreach (Control c in phdTrix.Controls)
{
if (c.GetType() == typeof(TextBox))
{
TrixID = (c as Literal).Text;
switch (c.ID)
{
case "TrixName":
TrixName = (c as TextBox).Text;
break;
case "Hardness":
Hardness = (c as TextBox).Text;
break;
case "Webpage":
Webpage = (c as TextBox).Text;
break;
}
UpdateTrix(TrixID, TrixName, Hardness, Webpage);
}
}
}
private void GetTrix()
{
DataTable table = CategoryAccess.GetAllTrix();
for (int i = 0; i < table.Rows.Count; i++)
{
Literal literalTrixID = new Literal();
literalTrixID.Text = table.Rows[i]["TrixID"].ToString();
literalTrixID.Visible = false;
TextBox textbox = new TextBox();
textbox.ID = "TrixName";
textbox.Text = table.Rows[i]["TrixName"].ToString();
Literal literal1 = new Literal();
literal1.Text = "<p>";
TextBox textbox2 = new TextBox();
textbox2.ID = "Hardness";
textbox2.Text = table.Rows[i]["Hardness"].ToString();
TextBox textbox3 = new TextBox();
textbox3.ID = "Webpage";
textbox3.Text = table.Rows[i]["Webpage"].ToString();
Literal literal2 = new Literal();
literal2.Text = "</p>";
phdTrix.Controls.Add(literalTrixID);
phdTrix.Controls.Add(literal1);
phdTrix.Controls.Add(textbox);
phdTrix.Controls.Add(textbox2);
phdTrix.Controls.Add(textbox3);
phdTrix.Controls.Add(literal2);
}
}
を私はエラーを取得する:いくつかのコントロールの同じID(TrixName
)とが見つかりました。 FindControl
には一意のIDが必要です。
私は最初のIDでIDを使用します:textbox.ID = table.Rows [i] ["TrixID"]。ToString();しかし、もし私がTrixName =(TextBoxとしてのc)を変更しないと、どのようにdiffrensを作る線量.Text; – user1007103
@ user1007103私は答えを更新します – ChrisF
ありがとう、しかし私はそれを働かせることはできません私は代わりにlitteralにTrixIDを入れました。私は新しいコードを書いて私の質問を編集しました。 – user1007103