2014-03-26 130 views
0

约5年没有做任何编程,所以我有点生锈这个。根据下拉框选择填充文本框

我建立一个资产管理系统,使我的工作更容易,但我挣扎几件事情。

我到目前为止是数据库设置和填充少量的数据,主要网站本身是建立和基本选择语句到当前系统中的任何数据的网格视图为特定页面/搜索和我也有一个插入语句,该语句根据在该页面上的表单中提交的数据填充相关表格。所有这些功能都可以无缝工作。

我的问题是,需要填充基于正从在同一形式的下拉框中所做的选择是需要填充INSERT语句一个字段。

正在注册到系统中的资产具有资产类型(类型信息被包含在父表ASSET_TYPE内)的形式具有用于显示目的3个字段(这些字段中的一个将需要从表单中返回一个条目到数据库中的资产表中,这是可行的),这些条目是从Asset_Type表中获取的,其他字段只与Asset表本身有关。

我想要实现的是用户转到页面并看到已注册资产列表(这是工作),然后他们需要添加一个新资产,方法是在页面上填写较低的表单是否存在并写入数据库)在这种形式是一个下拉菜单,查询Asset_Type表,并允许用户选择类型的名称(这工程)

我现在需要得到的工作是2其他字段根据选择的资产类型进行填充。

这些字段是目前形式的文本框,但如果需要可以改变。

的代码,我的页面背后,是下面:

Protected Sub Name_Model_SelectedIndexChanged(sender As Object, e As EventArgs) Handles Name_Model.SelectedIndexChanged 
    Using conn As New SqlConnection(ConfigurationManager.ConnectionStrings("AssetManagementConnectionString").ToString()) 
     Dim cmd As New SqlCommand() 


     cmd.Connection = conn 

     cmd.CommandText = "SELECT [ID], [Name_Model], [Description_Spec] FROM [Asset_Type] WHERE ([ID] = @ID)" 

     cmd.CommandType = CommandType.Text 

     conn.Open() 
     Dim reader As SqlDataReader = cmd.ExecuteReader() 

     If reader.HasRows Then 
      While (reader.Read()) 
        { 
         Type_ID.text = (reader["ID"].tostring()) 
         Name_Model.text = (reader["Name_Model"].tostring()) 
         Description_Spec.text = reader["Description_Spec"].tostring 
        } 

      End While 
     End If 

    End Using 
End Sub 
+0

您需要使用一些AJAX控件(查找SDK),或者您可以编写一些JavaScript来获取此信息而无需重新加载整个页面。你应该能够在这个网站上找到很多例子。 – Steve

+0

我编辑过你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 –

+0

'{'和'}'在VB.NET中无效......你已经有效地创建了'{}'在C#中通过'While ... End While'完成的“块” – freefaller

回答

0

所以我不知道关于史蒂夫的评论,但我知道他是根据我自己的问题,他与VB多了很多熟悉的回答。不过,我会提出一些建议。

所以“下拉菜单”通常有2个与它们相关的数据。 一个DisplayMemberValueMember(也是SelectedValue如果它是一个ComboBoxColumn)

您可以参考,我相信。

然后,你可以做你与使用If Then或不过你打算使用它该值讨好什么。

assetValue = YourComboBox.DisplayMember.ToString 
YourTextBox.Text = assetValue 

If ComboBox.ValueMember = YourIndex Then 
     assetValue = Whatever 
ElseIf 
    .... 
End If 

给一个尝试,让我知道你会得到什么。我只是把想法扔在那里。

相关问题