2017-05-14 42 views
0

因此,基本上我想根据选择的索引在下拉列表中使用sqldatasource进行计算,因为它的源代码和麻烦在另一个页面上查看它。我正在使用会话过程中。从使用sqldatasource作为数据源的下拉列表中计算值

下面是下拉列表中的正在使用的SqlDataSource编码: -

<asp:DropDownList ID="DdlMRoom" runat="server" DataSourceID="SqlDataSource2" DataTextField="Room" DataValueField="Price" Height="16px" Width="84px" Visible="False"> 
</asp:DropDownList> 
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:FlightConnectionString %>" SelectCommand="SELECT [Room], [Price] FROM [Meneur Hotel]"></asp:SqlDataSource> 
<asp:DropDownList ID="DdlGRoom" runat="server" DataSourceID="SqlDataSource3" DataTextField="Room" DataValueField="column1" Height="16px" Width="84px" Visible="False"> 
</asp:DropDownList> 
<asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:FlightConnectionString %>" SelectCommand="SELECT [Room], [Price (RM)] AS column1 FROM [Gardenia Hotel]"></asp:SqlDataSource> 
<asp:DropDownList ID="DdlARoom" runat="server" DataSourceID="SqlDataSource4" DataTextField="Room" DataValueField="column1" Height="16px" Width="84px" Visible="False"> 
</asp:DropDownList> 
<asp:SqlDataSource ID="SqlDataSource4" runat="server" ConnectionString="<%$ ConnectionStrings:FlightConnectionString %>" SelectCommand="SELECT [Room], [Price (RM)] AS column1 FROM [Al-Rashid Hotel]"></asp:SqlDataSource> 
<asp:DropDownList ID="DdlPRoom" runat="server" DataSourceID="SqlDataSource5" DataTextField="Room" DataValueField="column1" Height="16px" Width="84px" Visible="False"> 
</asp:DropDownList> 
<asp:SqlDataSource ID="SqlDataSource5" runat="server" ConnectionString="<%$ ConnectionStrings:FlightConnectionString %>" SelectCommand="SELECT [Room], [Price (RM)] AS column1 FROM [Petra Sella Hotel]"></asp:SqlDataSource> 
<asp:DropDownList ID="DdlTORoom" runat="server" DataSourceID="SqlDataSource6" DataTextField="Room" DataValueField="column1" Height="16px" Width="84px" Visible="False"> 
</asp:DropDownList> 
<asp:SqlDataSource ID="SqlDataSource6" runat="server" ConnectionString="<%$ ConnectionStrings:FlightConnectionString %>" SelectCommand="SELECT [Room], [Price (RM)] AS column1 FROM [The Olive Branch Hotel]"></asp:SqlDataSource> 

这里的例子我的计算中的一个: -

int calculation() 
{ 
    int price=0; 

    if(DdlMRoom.SelectedIndex==1) 
    { 
     int price; 
     price = Convert.ToInt16(DdlMRoom.SelectedValue) * Convert.ToInt16(TxtPax.Text); 
    } 

    return price; 

} 

protected void Button1_Click(object sender, EventArgs e) 
{  
    calculation().ToString(); 
    Session["Price"] = price; 

    Response.Redirect("View.aspx); 
} 

这里的编码上View.aspx &的.cs : -

<asp:Label ID="lblPrice" runat="server"></asp:Label> 

code -behind

protected void Page_Load(object sender, EventArgs e) 
{ 
    lblPrice.Text = Session["Price"].ToString(); 
} 

我希望有人能回答这个问题,我这样做是为分配和明天到期。如果你们中的任何一位能帮助我,那将会很棒!

+0

你不存储计算的'()的结果。的ToString()'。我没有看到这一行'Session [“Price”] = price;'当这个函数的范围内没有名为price的变量时会起作用 – Bowofola

+0

@Bowofola所以这意味着我必须在protected void Button1_Click中分配另一个变量(object sender ,EventArgs e)呢?例如prices = calculate()。ToString();会议[ “价格”] =价格;这是否意味着可以从sqldatasource计算出一个值?我GOOGLE了,它说使用这个数据视图的事情,我只是不明白。 – jdope

+0

你一定要这样做,因为你现在不应该建立给我。当你试图运行它时发生了什么? – Bowofola

回答

0

这应该工作

int calculation() 
{ 
    int price=0; 

    if(DdlMRoom.SelectedIndex==1) 
    { 
     price = Convert.ToInt16(DdlMRoom.SelectedValue) * Convert.ToInt16(TxtPax.Text); 
    } 

    return price; 

} 

protected void Button1_Click(object sender, EventArgs e) 
{  
    string price = calculation().ToString(); 
    Session["Price"] = price; 

    Response.Redirect("View.aspx"); 
} 
相关问题