yuuuuuuuuccccckkkkk....

Advice:  grab this .NET component and drop it in your BIN directory:

http://www.codeplex.com/json (note the new version only works
with .NET 3.5, grab the older one if you're in 2.0)

then you can stay thinking like .NET and objects

Class for each item

    Private Class Item

        Private _value As String
        Public Property value() As String
            Get
                Return _value
            End Get
            Set(ByVal value As String)
                _value = value
            End Set
        End Property

        Private _caption As String
        Public Property caption() As String
            Get
                Return _caption
            End Get
            Set(ByVal value As String)
                _caption = value
            End Set
        End Property

        Public Sub New(ByVal i_value As String, ByVal i_caption As
String)
            Me.value = i_value
            Me.caption = i_caption
        End Sub

    End Class


Then to generate (and at the end the NewtonSoft object will take care
of all JSON converstion that $.getJSON reads with no issues)

        Dim Options As List(Of Item) = New List(Of Item)
        If Not IsNothing(qs) Then
            Options.Add(New Item("", "choose color"))
            Select Case qs
                Case "7141832"
                    sku = "7141832"
                    Options.Add(New Item("bk", "Black Oil-tanned"))
                    Options.Add(New Item("br", "Black Polishable"))
                Case "7173656"
                    sku = "7173656"
                    Options.Add(New Item("bk", "Black"))
                    Options.Add(New Item("br", "Crazy Horse"))
                Case "7269643"
                    sku = "7269643"
                    Options.Add(New Item("bk", "Black"))
                Case Else
                    Options.Add(New Item("bk", "Black"))
            End Select

            Response.Write
(Newtonsoft.Json.JavaScriptConvert.SerializeObject(Options))

        End If





If Not IsNothing(qs) Then
            'json
            sb.Append("[{value:'',caption:'choose color'},")
            Select Case qs
                Case "7141832"
                    sku = "7141832"
                    sb.Append("{value:'bk',caption:'Black Oil-
tanned'},
{value:'br',caption:'Black Polishable'}")
                Case "7173656"
                    sku = "7173656"
                    sb.Append("{value:'bk',caption:'Black'},
{value:'br',caption:'Crazy Horse'}")
                Case "7141922"
                    sku = "7141922"
                    sb.Append("{value:'bk',caption:'Black'},
{value:'br',caption:'Crazy Horse'}")
                Case "7177382"
                    sku = "7177382"
                    sb.Append("{value:'hy',caption:'Honey'},
{value:'sd',caption:'Peanut'}")
                Case "7141730"
                    sku = "7141730"
                    sb.Append("{value:'rw',caption:'Brown'},
{value:'hy',caption:'Honey'}")
                Case "7141833"
                    sku = "7141833"
                    sb.Append("{value:'br',caption:'Russet'}")
                Case "7257914"
                    sku = "7257914"
                    sb.Append("{value:'br',caption:'Brown'}")
                Case "7269643"
                    sku = "7269643"
                    sb.Append("{value:'bk',caption:'Black'}")
                Case Else
                    sb.Append("{value:'bk',caption:'Black'}")
            End Select
            '
            sb.Append("]")
            result = sb.ToString
        End If


On May 28, 9:07 am, will <wml...@gmail.com> wrote:
> Hello:
>
> I'm trying to use the getJson() with asp.net page (attempting to adapt
> jquery in action example to .net):
>
> <script type="text/javascript">
>       $(function(){
>         $('#styleDropdown')
>           .change(function(){
>             var styleValue = $(this).val();
>             $('#detailsDisplay').load(
>               'getDetails.aspx',
>               { style: styleValue }
>             );
>             adjustColorDropdown();
>           })
>           .change();
>         $('#colorDropdown')
>           .change(adjustSizeDropdown);
>       });
>
>       function adjustColorDropdown() {
>         var styleValue = $('#styleDropdown').val();
>         var dropdownSet = $('#colorDropdown');
>         if (styleValue.length == 0) {
>           dropdownSet.attr("disabled",true);
>           $(dropdownSet).emptySelect();
>         }
>         else {
>           dropdownSet.attr("disabled",false);
>           $.getJSON(
>             'getColors.aspx',
>             {style:styleValue},
>             function(data){
>               $(dropdownSet).loadSelect(data);
>               adjustSizeDropdown();
>             }
>           );
>         }
>       }
>
>       function adjustSizeDropdown() {
>         var styleValue = $('#styleDropdown').val();
>         var colorValue = $('#colorDropdown').val();
>         var dropdownSet = $('#sizeDropdown');
>         if ((styleValue.length == 0)||(colorValue.length == 0) ) {
>           dropdownSet.attr("disabled",true);
>           $(dropdownSet).emptySelect();
>           adjustSizeDropdown();
>         }
>         else {
>           dropdownSet.attr("disabled",false);
>           $.getJSON(
>             'getSizes.jsp',
>             {style:styleValue,color:colorValue},
>             function(data){$(dropdownSet).loadSelect(data)}
>           );
>         }
>       }
>     </script>
>
> The getColors.aspx code is below. here is the object:
> [{value:'',caption:'choose color'},{value:'hy',caption:'Honey'},
> {value:'sd',caption:'Peanut'}]
>
>  I can step through the .net code and it appears to be generating the
> json correctly but the dropdown is never populated. So it appears the
> jquery is working but my returned json object is incorrect. Thanks.
>
>     Private result As String
>     Private sku As String = "--"
>
>     Protected Sub Page_Load(ByVal sender As Object, ByVal e As
> System.EventArgs) Handles Me.Load
>         Dim sb As New StringBuilder
>         Dim qs As String = ""
>
>         qs = Request.Params.Item("style")
>
>         If Not IsNothing(qs) Then
>             'json
>             sb.Append("[{value:'',caption:'choose color'},")
>             Select Case qs
>                 Case "7141832"
>                     sku = "7141832"
>                     sb.Append("{value:'bk',caption:'Black Oil-tanned'},
> {value:'br',caption:'Black Polishable'}")
>                 Case "7173656"
>                     sku = "7173656"
>                     sb.Append("{value:'bk',caption:'Black'},
> {value:'br',caption:'Crazy Horse'}")
>                 Case "7141922"
>                     sku = "7141922"
>                     sb.Append("{value:'bk',caption:'Black'},
> {value:'br',caption:'Crazy Horse'}")
>                 Case "7177382"
>                     sku = "7177382"
>                     sb.Append("{value:'hy',caption:'Honey'},
> {value:'sd',caption:'Peanut'}")
>                 Case "7141730"
>                     sku = "7141730"
>                     sb.Append("{value:'rw',caption:'Brown'},
> {value:'hy',caption:'Honey'}")
>                 Case "7141833"
>                     sku = "7141833"
>                     sb.Append("{value:'br',caption:'Russet'}")
>                 Case "7257914"
>                     sku = "7257914"
>                     sb.Append("{value:'br',caption:'Brown'}")
>                 Case "7269643"
>                     sku = "7269643"
>                     sb.Append("{value:'bk',caption:'Black'}")
>                 Case Else
>                     sb.Append("{value:'bk',caption:'Black'}")
>             End Select
>             '
>             sb.Append("]")
>             result = sb.ToString
>         End If
>
>         ''
>     End Sub
>
>     Protected Overrides Sub Render(ByVal writer As HtmlTextWriter)
>
>         writer.WriteLine(result)
>
>     End Sub

Reply via email to