1

後、私は、XML/XSLTリストビュー - ダイナミックコントロールはポストバック

<asp:ListView ID="DynamicFields" runat="server" 
      DataSourceID="CustomFields" 
      OnItemDataBound="DynamicFields_ItemDataBound"                    
      GroupItemCount="2" ItemPlaceholderID="itemsGroup" 
      GroupPlaceholderID="itemsGroup"> 
     <LayoutTemplate> 
     <table width="470" border="0" cellpadding="0" cellspacing="10"> 
      <asp:PlaceHolder ID="itemsGroup" runat="server" /> 
     </table> 
     </LayoutTemplate> 
     <GroupTemplate> 
     <tr> 
      <asp:PlaceHolder runat="server" ID="itemsGroup"></asp:PlaceHolder> 
     </tr> 
     </GroupTemplate> 
     <ItemTemplate> 
      <custom:CustomField ID="Field" runat="server" 
       FieldIndex='<%# Eval("index") %>' /> 
     </ItemTemplate> 
     <AlternatingItemTemplate> 
      <custom:CustomField ID="Field" runat="server" 
       FieldIndex='<%# Eval("index") %>' /> 
     </AlternatingItemTemplate>   
</asp:ListView> 

から動的なコントロールをロードし、私のページの分離コードで、私は、ユーザーコントロールのプロパティを結合し、ロードbindメソッドを呼んでいるリストビューを持っている消えますxmlを作成してコントロールを作成する

protected void DynamicFields_ItemDataBound(object sender, ListViewItemEventArgs e) 
    { 


     if (e.Item.ItemType == ListViewItemType.DataItem) 
     { 
      ucCustomField uc = (ucCustomField)e.Item.FindControl("Field"); 
      uc.FileName = FORM_PATH; 
      uc.FormName = FORM_NAME; 
      uc.LoadXMLFile(); //binding xml content here 
     } 
    } 

このリストビューは、静的コントロールと保存ボタンがある既存のフォームに追加します。私がボタンをクリックすると、バリデーションが行われ、検証要約ポップアップメッセージが表示されます。[OK]をクリックするとlistviewのすべての動的コントロールが消えます。 これらのコントロールを表示し、ポストバック後に入力された可能性のある値を保持するにはどうすればよいですか?

+0

バリデーションイベントはありますか?もしそうなら、そのコードを貼り付けることもできます。正確なエラーは何を返しているのですか? – MethodMan

+0

@DJ更新された質問 –

答えて

0

Page.IsPostbackが真

とき DynamicFields.DataBind()を呼び出すことによって、これを固定しようとする場合は、必ずわからないヘッダの中ではありませんします
0

そして、私のページの分離コードで私は、ユーザーコントロールのプロパティをバインドしてXMLをロードし、制御

あなたがバインド/ DataBindメソッドを呼び出している場所を伝えることができますを作成するbindメソッドを呼んでいます。 pageloadでそれを置くと、私は問題を解決すると思います。ポストバックは、ページに動的に追加されたものをすべて削除します。

よろしく、 SJ

+0

そのステートメントの後に私のコードをチェックしてください。 –

0

これが助けるかどうかが、次の

if(e.Item.ItemType == ListItemType.Item 
    || e.Item.ItemType == ListItemType.AlternatingItem) 
{ 
} 
+0

私はListviewを使用しており、ListviewItemTypeにはデータ項目しかありません。 –

関連する問題