私は1日に学生に時間を割り当てるウェブアプリケーションを持っています。スケジューラの一種。asp.netでusercontrolの値にアクセスする方法
このため、ユーザーコントロールはTimePeriod
であり、このコントロールはWebページに動的に読み込まれます。
しかし、ページ上のそのユーザーコントロールの数はこれに応じて変化します。私はユーザーコントロールを動的に作成するコードを持っています。例の目的のために
私は実際にそれが はこのように見える変化し、2までのi
値を設定している:ユーザーがすべての日のための時間のための変更が完了した場合
for(int i=0;i<2;i++)
{
TimePeriod ib = (TimePeriod)LoadControl("TimePeriod.ascx");
//ib.RightArrowImgUrl = "~/images/wcm-circle-arrow-button.png";
span_tempList.Controls.Add(ib);
}
。つまり、ページ上のすべてのユーザーコントロールで実行されます。
このページには、この変更をデータベースに取り込むボタンがあります。
しかし、ここでは、ページからこれらのテキストボックス値の値にアクセスする方法が、HTMLとしてレンダリングされているために発生します。
これは私のユーザーコントロールのコードです:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="TimePeriod.ascx.cs" Inherits="ClassManagment.TimePeriod" %>
<div>
<asp:TextBox ID="time3" size="10" value="08:00" runat="server"></asp:TextBox><asp:TextBox ID="time4" size="10" value="09:00" runat="server"></asp:TextBox>
</div>
コード、ユーザーコントロールの後ろに---:--------私は、ユーザーコントロールの値にアクセスするにはどうすればよい
public partial class TimePeriod : System.Web.UI.UserControl
{
protected global::System.Web.UI.WebControls.TextBox time3 = new System.Web.UI.WebControls.TextBox();
protected global::System.Web.UI.WebControls.TextBox time4 = new System.Web.UI.WebControls.TextBox();
public string TimeFrom
{
get { return time3.Text; }
set { time3.Text = value; }
}
public string TimeTo
{
get { return time4.Text; }
set { time4.Text = value; }
}
}
?そのような
ページに動的に追加されたコントロールをフィールドに配置してから、通常のオブジェクトとしてアクセスすることができます。 – ivowiblo
これは間違いなく、コントロールを動的に作成するときには、OnInitページイベントでコントロールを再作成して値を取得する必要があります。 – IamStalker
また、イベントを発生させるために。つまり、ユーザーコントロールがテキストボックスのクリックイベントに登録されています。 – ivowiblo