Цикл для вставки нескольких отдельных элементов управления флажок текста в один столбец в БД - PullRequest
1 голос
/ 14 октября 2011

Мне нужно вставить несколько текстов флажков в столбец в базе данных mssql, Я мог бы использовать один список флажков и сделать это проще, однако, требования должны отображать отдельные строки и столбцы HTML с несколькими флажками, вроде как Проверить все условия, которые применяются к дизайну, но по нескольким критериям, так что я предполагаю, что, вероятно, построитель строк или массив сделают так, что я пытаюсь следующий код, но должен быть более чистый способ, чем делать это вручную для каждого флажка ?

Пожалуйста, помогите с моим кодом ниже:

asp.net page
<td>
            &nbsp;
            <span style="color: #FF0000">*</span> Specify Criteria Used (check all that apply)<br />
&nbsp;<span style="text-decoration: underline">Signs &amp; Symptoms<br />
            </span>
            <br />
            <asp:CheckBox ID="eventCriteria1" runat="server" 
                Text="Purulent drainage or material" />
            <br />
            <asp:CheckBox ID="eventCriteria2" runat="server"  Text="Pain or tenderness"/>
            <br />
            <asp:CheckBox ID="eventCriteria3" runat="server" Text="Localized swelling" />
            <br />
            <asp:CheckBox ID="eventCriteria4" runat="server" Text="Redness" />
            <br />
            <asp:CheckBox ID="eventCriteria5" runat="server" Text="Heat" />
            <br />
            <asp:CheckBox ID="eventCriteria6" runat="server" Text="Fever"/>
            <br />
            <asp:CheckBox ID="eventCriteria7" runat="server" 
                Text="Incision deliberately opened by surgeon"/>
            <br />
            <asp:CheckBox ID="eventCriteria8" runat="server" 
                Text="Wound spontaneously dehisces"/>
            <br />
            <asp:CheckBox ID="eventCriteria9" runat="server"  Text="Abscess"/>
            <br />
            <asp:CheckBox ID="eventCriteria10" runat="server" Text="Hypothermia" />
            <br />
            <asp:CheckBox ID="eventCriteria11" runat="server" Text="Apnea" />
            <br />
            <asp:CheckBox ID="eventCriteria12" runat="server" Text="Bradycardia" />
            <br />
            <asp:CheckBox ID="eventCriteria13" runat="server" Text="Lethargy"/>
            <br />
            <asp:CheckBox ID="eventCriteria14" runat="server" Text="Cough"/>
            <br />
            <asp:CheckBox ID="eventCriteria15" runat="server" Text="Nausea"/>
            <br />
            <asp:CheckBox ID="eventCriteria16" runat="server" Text="Vomiting"/>
            <br />
            <asp:CheckBox ID="eventCriteria17" runat="server" Text="Dysuria"/>
            <br />
            <asp:CheckBox ID="eventCriteria18" runat="server" Text="Other evidence of infection found on direct
     exam, during surgery, or by diagnostic tests"/>
            <br />
            <asp:CheckBox ID="eventCriteria19" runat="server"  
                Text="Other signs & symptoms"/>

        </td>
        <td colspan="2" style="height: 23px; text-decoration: underline; width: 307px;" 
            valign="top">
            <br />
            Laboratory<br />
            <br />
            <asp:CheckBox ID="eventCriteria20" runat="server" 
                Text="Positive culture" />
            <br />
            <asp:CheckBox ID="eventCriteria21" runat="server" Text="Not cultured"/>
            <br />
            <asp:CheckBox ID="eventCriteria22" runat="server" 
                Text="Positive blood culture" />
            <br />
            <asp:CheckBox ID="eventCriteria23" runat="server" 
                Text="Blood culture not done or no organisms detected in blood" />
            <br />
            <asp:CheckBox ID="eventCriteria24" runat="server" 
                Text="Positive Gram stain when culture is negative or not done" />
            <br />
            <asp:CheckBox ID="eventCriteria25" runat="server" 
                Text="Other positive laboratory tests"/>
            <br />
            <asp:CheckBox ID="eventCriteria26" runat="server" 
                Text="Radiographic evidence of infection"/>
            <br />

            <br />
            Clinical Diagnosis<br />
            <asp:CheckBox ID="eventCriteria27" runat="server" 
                Text="Physician diagnosis of this event type"/>
            <br />
            <asp:CheckBox ID="eventCriteria28" runat="server" 
                Text="Physician institutes appropriate antimicrobial
    therapy"/>

        </td>



Code:


StringBuilder sb = new StringBuilder(); 
        if (eventCriteria1.Checked)
        {
            sb.Append(eventCriteria1.Text + ",");
            //Here stringValue is System.Text.StringBuilder variable 
        }

        if (eventCriteria2.Checked)
        {
            sb.Append(eventCriteria2.Text + ",");
            //Here stringValue is System.Text.StringBuilder variable 
        }

        if (eventCriteria3.Checked)
        {
            sb.Append(eventCriteria3.Text + ",");
            //Here stringValue is System.Text.StringBuilder variable 
        }

        if (eventCriteria4.Checked)
        {
            sb.Append(eventCriteria4.Text + ",");
            //Here stringValue is System.Text.StringBuilder variable 
        }

        if (eventCriteria5.Checked)
        {
            sb.Append(eventCriteria5.Text + ",");
            //Here stringValue is System.Text.StringBuilder variable 
        }
        if (eventCriteria6.Checked)
        {
            sb.Append(eventCriteria6.Text + ",");
            //Here stringValue is System.Text.StringBuilder variable 
        }
        if (eventCriteria7.Checked)
        {
            sb.Append(eventCriteria7.Text + ",");
            //Here stringValue is System.Text.StringBuilder variable 

        }

        cmd.Parameters.AddWithValue("@eventCriteria", sb.ToString());
.
.
.
.
.

Ответы [ 2 ]

0 голосов
/ 15 октября 2011

Вы можете использовать Request.Form и воспользоваться ID CheckBox

foreach(string key in Request.Form) {
    if (!key.StartsWith("eventCriteria")) continue;
    //database insert logic

}
0 голосов
/ 14 октября 2011

Вам нужно поместить CheckBox в какой-нибудь контейнер, например Panel или PlaceHolder, и тогда вы можете сделать это:

ASPX:

<asp:Panel ID="Panel1" runat="server">
    <asp:CheckBox ID="chk1" runat="server" Text="..." />
    ...
</asp:Panel>

Кодовый код для ASP.NET 3.5 и выше:

foreach (CheckBox chk in Panel1.Controls.OfType<CheckBox>())
{
    if (chk.Checked)
    {
        //update parameter
        cmd.Parameters["@eventCriteria"].Value += String.Format("{0},", chk.Text);
    }
}

//you'll probably need to trim the trailing comma too
cmd.Parameters["@eventCriteria"].Value = cmd.Parameters["@eventCriteria"].Value.TrimEnd(',');

Кодовый код для ASP.NET 2.0 и более ранних версий:

foreach (Control ctrl in Panel1.Controls)
{
    if (ctrl is CheckBox)
    {
        CheckBox chk = (CheckBox)ctrl;
        if (chk.Checked)
        {
            //update parameter
            cmd.Parameters["@eventCriteria"].Value += String.Format("{0},", chk.Text);
        }
    }
}

//you'll probably need to trim the trailing comma too
cmd.Parameters["@eventCriteria"].Value = cmd.Parameters["@eventCriteria"].Value.TrimEnd(',');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...