-3
 Dim objItems As clsItems

'Loads the pages with the Gridview and Infomation pretaining to the Item selected
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load

    Dim qryItemNum As String = Request.QueryString("qryItemNum")

    'Populates Gridview
    If Not Page.IsPostBack Then
        gvwCategorySelect.DataSource = clsCategory.GetList
        gvwCategorySelect.DataBind()

        'imgbtnPrev.Visible = False

        'If Not String.IsNullOrEmpty(qryItemNum) Then
        '    Dim ItemNum As Int32
        '    If Int32.TryParse(test, ItemNum) Then
        '        imgbtnPrev.Visible = (-1 < ItemNum)
        '    End If
        'End If
    End If


    objItems = New clsItems(qryItemNum)

    'Set up the from labels
    lblTitle.Text = objItems.Title
    lblPrice.Text = objItems.Price.ToString("C")
    lblDescription.Text = objItems.Description
    ImgItem.ImageUrl = "~/images/ItemImages/Item" & objItems.ItemNum & ".jpg"



End Sub

'Returns to pervious item
Protected Sub imgbtnPrev_Click(sender As Object, e As System.Web.UI.ImageClickEventArgs) Handles imgbtnPrev.Click

    Response.Redirect("~/ItemInfo.aspx?qryItemNum=" & objItems.ItemNum - 1)

End Sub

'Next item
Protected Sub imgbtnNext_Click(sender As Object, e As System.Web.UI.ImageClickEventArgs) Handles imgbtnNext.Click


    Response.Redirect("~/ItemInfo.aspx?qryItemNum=" & objItems.ItemNum + 1)

End Sub

上記のコードには、異なる ItemNum 間を移動する 2 つの画像ボタンがあります。クエリ文字列が 1 のときに imgbtnPrev ボタンを削除することで、ユーザーが前のボタンをクリックするのを止めようとしています。

エラー メッセージには、位置 0 に行がありませんというメッセージが表示されます。

dataRowObject = DBMethods.CreateTable(sqlString, sqlArg).Rows(0)

^ 強調表示されている場所はここにあります。

4

2 に答える 2

1

これを試して

   int number;
   if(Request.QueryString["qryItemNum"]!= null)
    {
     bool isNumeric = int.TryParse(Request.QueryString["qryItemNum"].ToString(), out number);
      if(isNumeric == true)
      {
        if(Convert.ToInt(Request.QueryString["qryItemNum"])<=1)
        {
          imgbtnPrev = false;
        }
      }
   }

編集: 私はそれをVB.NETに変換しました

   Dim number As Integer
   If Request.QueryString("qryItemNum") IsNot Nothing Then
Dim isNumeric As Boolean = Integer.TryParse(Request.QueryString("qryItemNum").ToString(), number)
   If isNumeric = True Then
    If Convert.ToInt(Request.QueryString("qryItemNum")) <= 1 Then
        imgbtnPrev = False
    End If
   End If
   End If
于 2013-03-01T20:14:12.547 に答える
1

これがVBのやり方だと思います:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
        imgbtnPrev = False
        Dim qryItemNum As String = Request.QueryString("qryItemNum")
        If Not String.IsNullOrEmpty(qryItemNum) Then
          Dim ItemNum As Int32
          If Int32.TryParse(qryItemNum, ItemNum) Then
            imgbtnPrev = (-1 < ItemNum)
          End If
        End If
    End If
End Sub

imgbtnPrevもちろん、これはコードまたは ASPX ページのどこかに定義されていることを前提としています。

編集:コメントの1つからimgbtnPrev.Visible = False元の質問まで、imgbtnPrevフォームのボタンであるように見えます。その場合は、次のように記述します。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
        imgbtnPrev.Visible = False
        Dim qryItemNum As String = Request.QueryString("qryItemNum")
        If Not String.IsNullOrEmpty(qryItemNum) Then
          Dim ItemNum As Int32
          If Int32.TryParse(qryItemNum, ItemNum) Then
            imgbtnPrev.Visible = (-1 < ItemNum)
          End If
        End If
    End If
End Sub

EDIT2:このバージョンではTry...Catch、エラーの内容を確認するために使用されています:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
        imgbtnPrev.Visible = False
        Try
          Dim qryItemNum As String = Request.QueryString("qryItemNum")
          If Not String.IsNullOrEmpty(qryItemNum) Then
            Dim ItemNum As Int32
            If Int32.TryParse(qryItemNum, ItemNum) Then
              imgbtnPrev.Visible = (-1 < ItemNum)
            End If
          End If
        Catch err As Exception
          Response.Write(err.Message)
        End Try
    End If
End Sub

それが役に立てば幸い!

于 2013-03-01T20:21:05.180 に答える