私はc#.netを使用しています
ビュー (MultiView) 内にリピーターがあり、各行には「編集」ボタンが含まれています (CommandArgument に格納されているのはタイプ ID です)。
<asp:Button ID="buttonClick" OnCommand="ButtonClick" CommandArgument='<%#Eval("ID")%>' runat="server" Text="Edit"/>
ユーザーが「編集」ボタンをクリックすると、別のビュー (編集ビュー) に移動します。
Eval("ID") が選択されているタイプに応じて、別の UserControl が表示される必要があります。
同じフォーム (編集ビュー) でポストバックが発生すると、動的コントロールの状態が失われることに気付きました。したがって、Page_Load を介して DIV (appViewArea) にアクセス/入力する必要があると思います。
私の Page_Load 内では、ユーザーが編集ビューにアクセスした場合にのみ、DIV に正しい UserControl を入力する必要があります。これが現在 Page_Load 内にあるものです。
if(_multiView1.ActiveViewIndex == 1) // This is the Edit View
{
int typeId = Convert.ToInt32(viewAppointmentID.Value); // viewAppointmentID is a hidden field which is created within the ButtonClick method.
switch (typeId)
{
case 1:
{
var control = Page.LoadControl("~/editBirthAppointment.ascx");
appViewArea.Controls.Add(control);
}
break;
case 2:
{
var control = Page.LoadControl("~/editDeathAppointment.ascx");
appViewArea.Controls.Add(control);
}
break;
}
}
protected void ButtonClick(object sender, CommandEventArgs e)
{
var viewAppointmentID = Convert.ToInt32(e.CommandArgument);
_multiView1.ActiveViewIndex = 1;
}
私の問題は、if ステートメント (_mutliview) に入ることはなく、viewAppointmentID も格納しないことです。私はウェブを見回しましたが、本当に私を助けるものを見つけることができません. 間違った方法でアクセスしていますか?
助けてくれてありがとう。
ありがとう
クレア