ASP.Net基于其他字段自动填充字段

ASP.Net基于其他字段自动填充字段,asp.net,vb.net,auto-populate,Asp.net,Vb.net,Auto Populate,我刚刚转到web开发,需要知道如何使用asp.net和vb.net实现以下要求 表单中有三个字段由用户填写。基于这三个值,我需要自动填充第四个字段。我已经计划通过以下方式实现这一点 编写一个单独的类文件,其中包含一个函数,用于根据前3个输入计算第4个字段的可能值。此函数可以返回一些介于1-10之间的值。所以我决定对第四个字段使用下拉列表,并允许用户选择适当的值 在第三个字段的onchange函数中调用上述函数,并获取并使用返回值填充第四个字段。我计划在数组字段中获取返回值。(这需要回发吗?) 请

我刚刚转到web开发,需要知道如何使用asp.net和vb.net实现以下要求

表单中有三个字段由用户填写。基于这三个值,我需要自动填充第四个字段。我已经计划通过以下方式实现这一点

  • 编写一个单独的类文件,其中包含一个函数,用于根据前3个输入计算第4个字段的可能值。此函数可以返回一些介于1-10之间的值。所以我决定对第四个字段使用下拉列表,并允许用户选择适当的值

  • 在第三个字段的onchange函数中调用上述函数,并获取并使用返回值填充第四个字段。我计划在数组字段中获取返回值。(这需要回发吗?

  • 请让我知道如果有更好的方法来实现这一点


    谢谢。

    你可能想考虑用JavaScript来做这件事。您可以使用纯Javascript,或者使用(我最喜欢的)一个很好的库,非常轻松地读取和控制字段。如果这样做,则不需要回发,第4个字段将立即更新。(非常适合您的用户)


    在大多数情况下,您也可以使用ASP.NET来完成。据我所知,ASP.NET中的“onchange”仍然需要Javascript,它只是为您做了一些工作。当您更改某些内容时,回发肯定会发生。

    您需要javascript或在表单元素上设置autopostback=true


    从用户的角度来看,最好是使用javascript填充要显示的字段,但在提交表单时,使用后端函数对其进行验证。这将确保用户没有更改该值。

    一个简单的方法是在UI中使用jQuery(这样你就不必担心冗长的javascript和处理浏览器兼容性问题,因为它已经为你解决了),并让它调用服务器获取数据。对于服务器,最简单的方法是返回循环值的JSON

    包括jQuery:

    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
    
    比如:

    <script type="vb" runat="server">
    Private Sub Page_Init()
       // get your data
       // loop through it and add in values
       // ex.
       Dim result As String = "[" //start multi-dimensional array
       For Each Item As String In data
          result += String.Format("['{0}','{1}'],", _value, _text)
       Next
       result = result.SubString(0, result.Length - 1) // removes trailing comma
       result += "]" // closes off m-array
       Response.Write(result)
       Response.Flush()
    End Sub
    </script>
    
    
    私有子页_Init()
    //获取您的数据
    //循环遍历它并添加值
    //前。
    Dim结果为String=“[”//启动多维数组
    将每个项目作为数据中的字符串
    结果+=String.Format(“['{0}','{1}],”,_值,_文本)
    下一个
    result=result.SubString(0,result.Length-1)//删除尾部逗号
    结果+=“]”//关闭m-array
    Response.Write(结果)
    Response.Flush()
    端接头
    
    [['value1','text1'],['value2','text2'],['value3','value3']]
    
    <script type="vb" runat="server">
    Private Sub Page_Init()
       // get your data
       // loop through it and add in values
       // ex.
       Dim result As String = "[" //start multi-dimensional array
       For Each Item As String In data
          result += String.Format("['{0}','{1}'],", _value, _text)
       Next
       result = result.SubString(0, result.Length - 1) // removes trailing comma
       result += "]" // closes off m-array
       Response.Write(result)
       Response.Flush()
    End Sub
    </script>