2012-03-29 54 views
3

我有一個下拉列表,我希望將所選值放入一個int變量,然後在我的aspx頁面中,我想將它分配給一個rowspan。這是獲得價值並將其轉換我的C#代碼:將下拉列表中的選定值轉換爲int

protected void drop_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      int a = Int32.Parse(drop.SelectedValue.ToString()); 

而這正是我想要的變量分配我的aspx代碼:

<asp:TableHeaderRow> 
<asp:TableHeaderCell RowSpan="<% a %>">Hostese</asp:TableHeaderCell> 
</asp:TableHeaderRow> 

我得到的錯誤:不能從其字符串表示中創建一個int32類型的對象。有誰可以說爲什麼?這是一個使用C#的asp.net應用程序。

+0

你會得到什麼drop.SelectedValue,你確定它是一個整數? – Lloyd 2012-03-29 11:39:30

+0

是的..他們是數字:) – Bibu 2012-03-29 11:45:24

+0

你試過這個int a = Int32.Parse(drop.SelectedValue.Trim()); – 2012-03-29 11:56:54

回答

2

嘗試在讀取下拉值時設置此值。

<asp:TableHeaderRow> 
    <asp:TableHeaderCell ID="h1" >Hostese</asp:TableHeaderCell> 
</asp:TableHeaderRow> 



protected void drop_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    h1.RowSpan = Int32.Parse(drop.SelectedValue.ToString()); 
+0

它不會給我一個錯誤,但它不會給我如何我想要..let的說我選擇3比rowspan只有2和第三個帶來附近第二 – Bibu 2012-03-29 12:18:47

+0

你檢查了HTML源? – 2012-03-29 12:20:16

+0

是的...第三個帶到第二個..1和2顯示正確。 – Bibu 2012-03-29 12:56:44

0

如果drop.SelectedValue的值不是int那麼你會得到這個錯誤。例如,如果該值包含浮點。

+1

,但它是int .. – Bibu 2012-03-29 11:50:25

+0

你有沒有試過它trim()? – ABH 2012-03-29 11:52:26

0

嘗試使用int.Parse(drop.SelectedValue)int.Parse(drop.SelectedValue.Trim())而不是Int32.Parse(drop.SelectedValue.ToString())drop.SelectedValue已經是字符串格式,因此您無需將其轉換爲使用ToString

0

嘗試Int32.TryParse方法,該方法嘗試轉換字符串表示未拋出異常爲int。同時檢查下拉列表項目的值。當字符串值不表示整數值時,會發生此異常。

2

如何:

int a = int.TryParse(drop.SelectedValue, out a)? a : 0; 
0

如果下拉列表項的值是數字(數字)喜歡...

<asp:DropDownList ID="DropDownList1" runat="server"> 
     <asp:ListItem Text="Please Select" Value="-1"></asp:ListItem> 
     <asp:ListItem Text="1st" Value="1"></asp:ListItem> 
     <asp:ListItem Text="2nd" Value="2"></asp:ListItem> 
     <asp:ListItem Text="3rd" Value="3"></asp:ListItem> 
    </asp:DropDownList> 

,那麼你可以簡單地做到這一點...

int i = Int32.Parse(DropDownList1.SelectedValue); 

這總是適合我!!!!!!!!!!