1

我正在做一个填字游戏,我在这样的面板中有 100 个文本框: 在此处输入图像描述

每个文本框都有一个 00-99 的 id,因为它有 100 个。

在此处输入图像描述

第一行将有一个 id 00-09,第二行将有一个 id ,10-19依此类推。

当用户在某些文本框中键入内容时null,某些文本框中将包含值。如何将某个 id 的文本框中的值保存到数据库中?例如上图HELP,文本框 id22的值为H, 的 id 的23值为, 的Eid 的24值为L, 的 id 的25值为P

我不想保存null文本框的值,我想保存不是文本框的值null。我还需要考虑他们的文本框 ID,这样当我重新填充它们时,我只需通过 ID 插入它们。

我是 C# 新手,感谢任何帮助/建议/解决方案。

这是我的代码:

protected void Page_Load(object sender, EventArgs e)
{
    //hw.Write("<table>");
    for (int i = 0; i <= 9; i++)
    {
        //hw.Write("<tr>");
        for (int j = 0; j <= 9; j++)
        {
            TextBox tb = new TextBox();
            tb.MaxLength = (1);
            tb.Width = Unit.Pixel(40);
            tb.Height = Unit.Pixel(40);
            tb.ID = i.ToString() + j.ToString(); // giving each textbox a different id  00-99 
            Panel1.Controls.Add(tb); 
        }
        Literal lc = new Literal();
        lc.Text = "<br />";
        Panel1.Controls.Add(lc);
    }
}

protected void btnShow_Click(object sender, EventArgs e)
{
    foreach (Control control in Panel1.Controls)
    {
        var textBox = control as TextBox;   
        if (textBox != null)
        {
            if (string.IsNullOrEmpty(textBox.Text))
            {
                textBox.Style["visibility"] = "hidden";
            }
            // textBox.Enabled = false;
            textBox.Text = "";
        }
    } 
}
4

2 回答 2

2

执行此操作的正确方法是将这些文本框包装在 Repeater 或 Datalist 控件中。您可以从这里准备好这些控件。这样,当行数增加时,您不必更改循环或硬编码值。

至于为给定 ID 存储值的问题,您可以在数据库中定义 row# 和 col# 并对 row# 和 col# 进行排序,这应该可以。

于 2013-06-24T02:27:01.270 回答
1

最简单的方法是制作一个二维数组(或List)您的文本框。在您创建文本框的位置:

List<List<TextBox>> textBoxList = new List<List<TextBox>>();
for (int i = 0; i <= 9; i++)
{
    List<TextBox> textBoxRow = new List<TextBox>(); //this could be columns, not sure
    for (int j = 0; j <= 9; j++)
    {
        TextBox tb = new TextBox();
        ....
        textBoxRow.Add(tb);
    }
    ...
    textBoxList.Add(textBoxRow);
}

现在您可以读取/写入这些数组条目,例如:

string readValue = textBoxList[2][5].Text;
textBoxList[1][7].Text = "asdf";
于 2013-06-24T02:19:21.410 回答