1

私はクロスワード パズルをやっていて、次のようなパネルに 100 個のテキスト ボックスがあります。 ここに画像の説明を入力

100 個のテキスト ボックスがあるため、すべてのテキスト ボックスの ID は 00 ~ 99 です。

ここに画像の説明を入力

最初の行には id があり00-09、2 番目の行には id が10-19あります。

ユーザーがテキストボックスに何かを入力するnullと、テキストボックスに値が入力されます。特定の ID のテキスト ボックスの値をデータベースに保存するにはどうすればよいですか? たとえば、上の画像ではHELP、 のテキスト ボックス ID は22の値Hになり、 の ID は23の値になりE、 の ID はの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 の値を保存する質問については、データベースで行番号と列番号を定義し、行番号と列番号で並べ替えることができます。これは機能するはずです。

于 2013-06-24T02:27:01.270 に答える