グリッドビュー、ボタン、コメント用の複数行のテキストボックスを備えたユーザーコントロールがあります。
ページがポストバックされると、Gridviewは正常に動作します(そのコントロールはポストバック後も値を保持します)。ただし、コメントテキストボックスは、私が何をしても、常に空です。
protected void Page_Load(object sender, EventArgs e)
{
//This code is in the user ciontrol.
if (!IsPostBack)
{
string test = this.txtDepartmentComments.Text;
}
}
その行にブレークポイントを設定すると、値は常に空になります。私はまた、次のようにコードビハインドで値を設定しようとしました:
protected void Page_Load(object sender, EventArgs e)
{
//This code is in the user ciontrol.
if (!IsPostBack)
{
this.txtDepartmentComments.Text = "Test!";
}
}
ただし、ページが読み込まれると、コントロールは空のままになります。
なぜこれが起こっているのか考えていますか?
編集
これはascxコード(つまりユーザーコントロール)
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns = "false" >
</asp:GridView>
<asp:TextBox ID="txtComments" runat="server" Columns="45" TextMode= "MultiLine"/>
<asp:Button ID="btnComplete" runat="server" Text="Completed"/>
そして、このIDはaspx(つまり親ページ)です
<asp:Repeater ID="rpNewHire" runat="server">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<user:MyUserControl ID = "MyUserControl1" runat = "server"
DepartmentID= '<%# Eval("DepID")%>'><user:MyUserControl />
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>