0

クエリから入力されたデータリストにチェックボックスのグループがあります。チェックすると、これらの値(文字列)を別のテキストボックスから文字列に追加する必要があります。(基本的にはメモだけで、チェックボックスを使用すると、頻繁に繰り返されるコメントを簡単に入力できます。)

しかし、何らかの理由で、コードビハインドでチェックボックスを認識させることができません。チェックボックスはフォームに表示され、フィドラーでは、一部のチェックボックスに「オン」の値があることがわかりますが、挿入文字列に値を取得できません。

今のところ、これをボタンのクリックイベントにラップしています。データリストで個別のデータバインディングを実行する必要がありますか?それを行う必要がある場合、残りの値をクリックイベントに取り込むにはどうすればよいですか?データバインディングを個別に実行してから、クリックイベントからdatabind関数を呼び出してみましたが、作成した変数が同じコンテキストで見つかりませんでした。

これがcsコードです:

 foreach (DataListItem item in StatusCheckboxDataList.Items)
            if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
            {
                {

                    CheckBox StatusProblemDescriptionCheckbox= (CheckBox)item.FindControl("StatusProblemDescriptionCheckbox");
                    HiddenField StatusProblemDescriptionHidden= (HiddenField)item.FindControl("StatusProblemDescriptionHidden");
                    if (StatusProblemDescriptionCheckbox != null)
                    {
                        if (StatusProblemDescriptionCheckbox.Checked == true)
                        {
                            string StatusProblemString = StatusProblemDescriptionHidden.Value;
                            StatusProblemString = "Errors Found: " + StatusProblemString + ", " + Status_notes.Text; //this is coming from the textbox... it's finding this just fine.
                            newstatusentry.s_notes = StatusProblemString;

                        }
                        else
                        {
                            string StatusProblemString = Status_notes.Text;
                            newstatusentry.s_notes = StatusProblemString;

                        }
                    }
                }
            }

たまたまAjaxControlToolkitアコーディオンの中に住んでいますが、私はアコーディオンを取り外しましたが、それでもうまくいきません。

これがaspxコードです

<asp:DataList ID="StatusCheckboxDataList" runat="server">
 <ItemTemplate>
    <asp:CheckBox ID="StatusProblemDescriptionCheckbox" runat="server" Text='<%#Eval ("statusprobDesc") %>' /><br />
     <asp:HiddenField ID="StatusProblemDescriptionHidden" runat="server" Value='<%#Eval ("statusprobDesc") %>' />
    </ItemTemplate>
</asp:DataList>
4

1 に答える 1

0

ループするたびにテストボックスの値を上書きしていないことを確認してください:

 newstatusentry.s_notes = newstatusentry.s_notes+ StatusProblemString; 

それよりも:

 newstatusentry.s_notes = StatusProblemString
于 2012-12-18T01:36:26.297 に答える