2016-12-03 9 views
0

これはよくある問題のようです。私は別のソリューションを試したが、まだ動作していない。これは私のコードです。DropDownList SelectIndexChangedが機能していませんか?

HTML:

<div class="form-group"> 
    <label for="exampleInputEmail1">Artist *</label> 
    <asp:DropDownList ID="artistDropdown" runat="server" CssClass="form-control" AutoPostBack="True" OnSelectedIndexChanged="artistDropdown_SelectedIndexChanged" ViewStateMode="Enabled"></asp:DropDownList> 
    <asp:TextBox ID="mytest" runat="server"></asp:TextBox> 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="artistDropdown" SetFocusOnError="true" ErrorMessage="Required Field" Font-Bold="True" Font-Names="Arial" Font-Size="X-Small" ForeColor="Red"></asp:RequiredFieldValidator> 
    <asp:Label ID="lblMessage" runat="server" CssClass="help-block" Visible="False">Cant select Artist with no Manager</asp:Label> 
</div> 

機能:私はPage_Load()機能でDropDownListコントロールを搭載していますし、AutoPostBack="True"がDropDownListに設定されている

protected void artistDropdown_SelectedIndexChanged(object sender, EventArgs e) 
{ 

string selectedArtist = artistDropdown.SelectedValue; 
mytest.Text = selectedArtist; 
string query = "Select [Manager ID] from Artist Where ID = '" + selectedArtist + "'"; 

string myConnection = dbController.connectionString; 
SqlConnection conn = new SqlConnection(myConnection); 

SqlCommand cmd = new SqlCommand(query, conn); 
conn.Open(); 
object obj = cmd.ExecuteScalar(); 
if (obj is System.DBNull) 
{ 
    artistDropdown.SelectedValue = ""; 
    lblMessage.Visible = true; 
} 
else 
{ 
    lblMessage.Visible = false; 
} 
conn.Close(); 
} 

をOnSelectedIndexChanged。

また、DropDownListからselectedValueに設定されているTextBoxを作成して、OnSelectedIndexChangedが発生しているかどうかを確認しました。しかし、テキストボックスは空のままです。

私は間違っていますか?

+0

「mytest.Text = selectedArtist;」を「mytest.Text = selectedArtist + DateTime.Now.ToString();」に変更するとどうなりますか?私は 'artistDropdown'の' Values'が空であると思われます。 – VDWWD

答えて

0

if(!postback){}にドロップダウンリストのバインドを入れましたか?

ポストバックごとにリストを再バインドすると、artistDropdown_SelectedIndexChangedイベントに到達すると、最初のリスト項目の値が取得されます。 この項目に空の文字列値がある場合...

+0

はいif(!postback)でDDLをバインドしています – EL323

関連する問題