2017-03-20 2 views
0

私は以前これをやったことがありますが、何らかの理由でこれが今のところうまくいきません。'Insert mode'のFormView内のLabelに値を挿入する

私が持っているのは、IDEによって作成されたときにFormViewに挿入されたTextBoxを置き換えるために使用した2つのasp.Labelに値を挿入するasp.FormViewです。私はこれらの2つのテキストボックスの値をプログラムで供給したいので、TextBoxを使いたいと思っていました。

これはエラーは発生しませんでしたが、Labelコントロールに予想される値を設定できませんでした。 (FormViewが挿入モードとは対照的に編集モードになっていた場合でも同じことが可能でしたが)TextBoxをLabelに戻して同じ結果を返すように変更しました。挿入モードではそれもかかわらず、値の割り当ては、コントロールのバインディングターゲットに設定したデバッグでそれを追跡していないでしょう。

は私が間違ってここにこのようにやったものを見ることができないで他のポイントに取り組んでいますここでは、挿入モードでFormViewに値を入力したいと考えていました。

ここにコードが含まれています:

/*-- This is the fragment of code in the aspx which is related to the issue: --*/ 
<asp:FormView runat="server" ID="EditImpStndPreamble" DataSourceID="ImpStndPreambDS" OnItemCommand="EditImpStndPreamble_ItemCommand" DefaultMode="Edit" DataKeyNames="ARS_Index"> 
    <InsertItemTemplate> 
     <asp:Label runat="server" Font-Size="Small" Font-Bold="true" Width="60" Text="Index #"></asp:Label> 
     <asp:Label Text='<%# Eval("ARSEL_Index") %>' runat="server" ID="ARSEL_IndexLabel1" Width="74" /> 

     <asp:Label runat="server" Width="60" Font-Size="Small" Font-Bold="true" Text="Control #"></asp:Label> 
     <asp:TextBox Text='<%# Bind("ARSControlNum") %>' runat="server" ID="ARSControlNumTextBox" Width="74" /> 
     <asp:LinkButton runat="server" Text="Insert" CommandName="Insert" ID="InsertButton" CausesValidation="True" />&nbsp; 
     <asp:LinkButton runat="server" Text="Cancel" CommandName="Cancel" ID="InsertCancelButton" CausesValidation="False" /> 
    </InsertItemTemplate> 
</asp:FormView> 


// This is the fragmentof code in the C# code behind related to the issue 

// This is where we update the control number 
TextBox ctrnum = (TextBox)EditImpStndPreamble.Row.FindControl("ARSControlNumTextBox"); 
if (ctrnum != null) 
    ctrnum.Text = Session["CurrentControl"].ToString(); 

誰でも私がここでぼやけているのを見たり、これらの値を挿入モードにすることについてのアドバイスをお持ちですか? ありがとう!

UPDATE:3/21/17 8:47米国中部時間

今朝、私は、これはポストバックの問題であったことを考慮し、テキストボックスにそれぞれのAutoPostBack =「true」を追加しました。

私が観察したのは、初めてコードをヒットしたとき、オートポストバックがTextBoxにデータを入力しなかったことです。しかし、私はそれをもう一度打つと値が適切に入力された戻ってきた。だから、私は後続のだろうと思うそれは、ユーザーがボックスにデータを2回クリックすることなく、値を表示するまで、コントロールをリフレッシュし続けることができますか?

enter image description here

注:私はきちんと「のTextBox」の代わりのラベルを反映するために、最初の質問を修正しました。私はこれを解決するまでTextBoxとして保持します。

答えて

0

これはあなたの全体の問題を解決するかどうかは知りませんが、スニペットに、あなたは何のラベルARSControlNumLabelはありません提供。

両方のラベルにIDというプロパティがないため、FindControlはそれらを見つけることができません。埋め込まれたテキストボックスコントロールに=「真」のAutoPostBackを追加

+0

オーケー、私は今朝になって、あなたが観察され、これは私の質問の編集中にエラーがあったものをチェックアウトして行きました。私は他のページがTextBoxを使用しているので、TextBoxとLabelの間を反転していましたが、ここでLabelを使用する方が好きです。コード今朝はラベルだったとC#が背後に行ったように、両方のASPXは有効なラベルを持っていました。私は、それが完全に活用されていることをTextBoxに切り替えるようにしました。結果は同じです。 FormViewの挿入モードで値が表示されません。 –

+0

は、その後のセッション 'CurrentControl'と'任意のデータが含まれているCurrentFamily'あなたはよろしいですか?あなたのハードコードと何がテストのための価値をどうなりますか? – VDWWD

+0

質問が更新されました(修正されたテキストボックスの問題)、テキストボックスの自動ポストバックに関する追加情報が提供されました。 –

0

値がFormViewコントロールが挿入モードにあった間に示すことができました。

関連する問題