2012-03-09 11 views
0

DropDownListの選択によって表示されるTextBoxがあります。テキストボックスの既定の動作はVisible="false"です。 MaxLength値は、DropDownListの選択に応じて変更する必要があります。 TextBoxが表示されないことがあります。DropDownListの選択に応じてTextBoxのMaxLengthを設定しますか?

私は以下のマークアップを提供しました。

<asp:UpdatePanel ID="updatePanel" runat="server" ChildrenAsTriggers="false" UpdateMode="Conditional" RenderMode="Inline"> 
     <ContentTemplate> 
      <asp:DropDownList ID="ddlList" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlList_SelectedIndexChanged"> 
      </asp:DropDownList> 
      <asp:TextBox ID="tbOther" runat="server" Visible="false" OnPreRender="tbOther_PreRender"></asp:TextBox> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="ddlList" /> 
     </Triggers> 
    </asp:UpdatePanel> 

私はまだこの問題に対処するための方法を通じて働いているが、DropDownListの上のMaxLengthの値を保存して、コード内で背後に、のMaxLengthを設定し、その値を使用することが可能ですTextBoxに? UpdatePanelにドロップダウンがあり、AutoPostBackを使用しているので、これが可能であるはずですが、値がどこに格納されるのかわかりません。

+0

ポストバックの代わりにJSを使用してテキストボックスの最大長を設定する方が速く効率的だと思います。 – Zishan

答えて

0

イエップ。あなたはこれを行うことができます。

void Page_Load() 
{ 
    tbOther.MaxLength = Int32.Parse(ddlList.SelectedValue); 
} 

値が自動的ので、あなたはまったくそのことについて心配する必要はありませんページのViewStateに格納されます。

+0

ddlList.SelectedValueをキャストまたは変換する必要があります。 – Khan

+0

@Jeffありがとう。私はVBの脳に私は推測:) – Jeff

+0

私は基本的に私のPage_Load()で同じコードがありますが、動作するようには表示されません。私は "ソースの表示"を行い、maxlengthの値は表示されません。私はこれが問題の可能性がありますユーザーコントロール内にあると述べている必要がありますか? – McArthey

関連する問題