0

ページに何度も表示される単純なユーザー コントロールがあります。だから私は、データセットをループし、UC を作成し、テキストボックスとチェックボックスを入力し、それをパネルに追加するパネルを持っています。

パネルは UC を追加しますが、テキストボックスの値もチェックボックスも変更されません...

foreach (Issue iss in Case.Issues)
{
    Comments comment = (Comments)LoadControl("~/UserControls/Comments.ascx");
    comment .ID = "Comment" + iss.IssueDetail.quality_control_issue_id.ToString();
    comment .Populate(iss);
    QCComments_list.Controls.Add(comment );
}

ページのプレレンダリングまたは Onit でこれを行う必要がありますか、または UC のコントロールを更新する方法はありますか?

これが UC マークアップです。とても簡単です。

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ROI_Comments.ascx.cs" Inherits="QualityControl_UserControls.ROI_Comments" %>
<!-- Field -->
    <div id="ROI_Comment_DIV" class="field">
        <label>Corrections</label>
        <input type="text" runat="server" id="comtxt" name="comtxt"  />
        <asp:CheckBox ID="issue_critical" runat="server" Text="Critical" />
        <asp:Button runat="server" id="SaveButton" Text="Add Comment" OnClientClick="SaveComment(this);return false;"  />
        <asp:Button runat="server" id="ROICancelButton" Text="Cancel" OnClientClick="return false;"  />
        <asp:HiddenField runat="server" ID="hIssueID" />
    </div>
    <!-- /Field -->

そして.cs

 public partial class ROI_Comments : System.Web.UI.UserControl
        {
            public ROI_Comments()
            {

            }

            public void Populate(cQuality_Control_Issue _comment)
            {
                try
                {
                    hIssueID.Value = _comment.IssueDetail.quality_control_issue_id.ToString();
                    comtxt.Value = _comment.IssueDetail.quality_control_issue_description;
                    comtxt.Disabled = true;
                    issue_critical.Checked = _comment.IssueDetail.quality_control_issue_critical;
                    issue_critical.Enabled = false;
                    ROICancelButton.Text = "Delete";

                }
                catch(Exception ex)
                {}
            }
        }
4

1 に答える 1