私はカスタムのusercontrolを持っています。これは基本的にドロップダウンリストで、データベースの値があらかじめ用意されています。カスタムDropDownListのOnChange属性がレンダリングされていません
<asp:DropDownList ID="selResponseTimes" runat="server" SkinID="filterSkin">
</asp:DropDownList>
の背後にあるコード:
public partial class Response_Times_Drop_Down : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable objDataTable = DAL.ExecuteDataTable("sp_cl_Response_Times_Get", null);
selResponseTimes.DataSource = objDataTable;
selResponseTimes.DataTextField = "TM_Code";
selResponseTimes.DataValueField = "TM_Code";
selResponseTimes.DataBind();
}
}
public string SelectedValue
{
get
{
return selResponseTimes.SelectedValue;
}
set
{
selResponseTimes.SelectedValue = value;
}
}
}
制御は次のように自分のページに追加され、正常に動作している:
<asp:ResponseTimesDropDown runat="server" ID="selResponse" />
私は、標準コントロールに属性としてクライアント側のイベントを追加していますPage_Load
に、
txtCallRelatedCall.Attributes.Add("onblur", "CheckRelatedCall()");
しかし、カスタムコントロールでこれを実行しようとすると、追加されません。
selResponse.Attributes.Add("onchange", "CalculateResponseTime()");
ただし、コードをデバッグすると、属性がコレクションに追加されているだけで、ページに出力されていないように見えます。どうしてこれなの?
javacriptとhtmlの部分を表示できますか?また、 "CheckRelatedCall(); false;を返すように設定しようとすると "CalculateResponseTime(); falseを返す"もし動作するかどうかを確認する。 – Aristos
私はコントロールにonchange属性を正常に追加できないので、これは無関係です。私はjavascriptを呼び出すことはありません。 – fourdam
私の前提は、コントロールが既にレンダリングされているので、私のカスタムコントロールではなく、 'Page_Load'イベントの標準コントロールに属性を追加できるからです。以前の段階で属性を追加する必要があるのですか? – fourdam