2012-04-12 2 views
1

Afternoon Все,Входная строка не была в правильном формате

У меня есть выпадающий список, который извлекает данные из моей базы данных SQL и дает пользователям два варианта на выбор (еженедельно/ежемесячно). База данных имеет идентификатор для каждого из них. Еженедельно установлено значение 1, а значение Ежемесячно равно 2. Это выпадение связано с gridview, который извлекает/отображает данные на основе выбранного элемента. Все это прекрасно работает.

Эта проблема заключается в том, что я хочу добавить код в мое событие загрузки страницы, чтобы заполнить текстовое поле с выбранным элементом. Я также хотел бы установить dropdownlist как значение по умолчанию в неделю, когда пользователи получат доступ к этой странице. Я думал, что два следующих бита кода будут работать, но я получаю messege «Строка ввода не в правильном формате».

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

    'This works fine 
    lblTodaysDate.Text = GetDate() 


    'I thought i could complete an If Statement to get the text box to work. 
    If DropDownList1.SelectedValue = 1 Then 
     txtMeeting.Text = "SMC Weekly Meeting" 
    Else 
     txtMeeting.Text = "SMC Monthly Meeting" 
    End If 


End Sub 

Я новичок в .net, но прочитал, что мне может потребоваться преобразовать мой int в строку?

Любая помощь заблаговременно была бы намного опережающей.

С уважением Бетти.

+0

Какая линия вызывает ошибку? – mgnoonan

+0

Вы говорите, что 'lblTodaysDate.Text = GetDate()' отлично работает, но что _is_ 'GetDate()'? Чтобы получить текущую дату, вам просто нужно «Date.Now.ToShortDateString». –

ответ

1

Сначала проверьте, что ваше значение является числовым, если он есть, а затем преобразовать его в целое число, и сравнить его с 1:

If IsNumeric(DropDownList1.SelectedValue) AndAlso CInt(DropDownList1.SelectedValue)=1 
    txtMeeting.Text = "SMC Weekly Meeting" 
Else 
    txtMeeting.Text = "SMC Monthly Meeting" 
End If 
+0

Большое спасибо за помощь в этом упражнении, так как выбранное значение является числовым, а не строкой. – Betty

2

Просто попробуйте ограждающий нужное значение в кавычках, например:

If DropDownList1.SelectedValue = "1" Then 
    txtMeeting.Text = "SMC Weekly Meeting" 
Else 
    txtMeeting.Text = "SMC Monthly Meeting" 
End If 
0

Вам нужно проверить IsPostBack иначе DDL SelectValue будет сбросить

NB: Мой Vb.Net немного ржавый

т.е.

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

    If Me.IsPostBack Then 

     'This works fine 
     lblTodaysDate.Text = GetDate() 

     'I thought i could complete an If Statement to get the text box to work. 
     If DropDownList1.SelectedValue = "1" Then 
      txtMeeting.Text = "SMC Weekly Meeting" 
     Else 
      txtMeeting.Text = "SMC Monthly Meeting" 
     End If 
    Else 
     ' Put your code to populate the ddl here 


    End If 
End Sub