2014-02-02 3 views
1

сеть используя VB. Я следовал за этим tutorial для выполнения Оценки контроллера'RatingControlChanged' не является членом 'ASP.default_aspx'.

Но я получаю следующее сообщение об ошибке

Error 1 'RatingControlChanged' is not a member of 'ASP.default_aspx'. C:\Users\raj\Documents\Visual Studio 2013\WebSites\WebSite13\Default.aspx 46 
Error 2 'ratingControl' is not declared. It may be inaccessible due to its protection level. C:\Users\raj\Documents\Visual Studio 2013\WebSites\WebSite13\Default.aspx.vb 16 48 WebSite13 
Error 3 'ratingControl' is not declared. It may be inaccessible due to its protection level. C:\Users\raj\Documents\Visual Studio 2013\WebSites\WebSite13\Default.aspx.vb 33 13 WebSite13 
Error 4 'lbltxt' is not declared. It may be inaccessible due to its protection level. C:\Users\raj\Documents\Visual Studio 2013\WebSites\WebSite13\Default.aspx.vb 34 13 WebSite13 

Я понятия не имею, какой из них вызывает ошибку My DB name is Test and Table name is ratings

Это мой default.aspx

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajax" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<script runat="server"> 

    Protected Sub Page_Load(sender As Object, e As EventArgs) 

    End Sub 
</script> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<title>Ajax Rating Sample</title> 
<style type="text/css"> 
.ratingEmpty 
{ 
background-image: url(ratingStarEmpty.gif); 
width:18px; 
height:18px; 
} 
.ratingFilled 
{ 
background-image: url(ratingStarFilled.gif); 
width:18px; 
height:18px; 
} 
.ratingSaved 
{ 
background-image: url(ratingStarSaved.gif); 
width:18px; 
height:18px; 
} 
</style> 
</head> 
<body> 
<form id="form1" runat="server"> 
<ajax:ToolkitScriptManager ID="ScripManager1" runat="server"/> 
<div> 
<asp:UpdatePanel ID="pnlRating" runat="server"> 
<ContentTemplate> 
<table style="width:35%"> 
<tr> 
<td style="width:20%"> 
<b>Average Rating:</b> 
</td> 
<td> 
<ajax:Rating ID="ratingControl" AutoPostBack="true" OnChanged="RatingControlChanged" runat="server" StarCssClass="ratingEmpty" WaitingStarCssClass="ratingSaved" EmptyStarCssClass="ratingEmpty" FilledStarCssClass="ratingFilled"> 
</ajax:Rating> 
<b> <asp:label ID="lbltxt" runat="server"/> </b> 
</td> 
</tr> 
<tr> 
<td colspan="2"> 
Testing 
</td> 
</tr> 
</table> 
</ContentTemplate> 
</asp:UpdatePanel> 
</div> 
</form> 
</body> 
</html> 

Это код default.aspx.vb

Imports System.Configuration 
Imports System.Data 
Imports System.Data.SqlClient 

Partial Class _Default 
    Inherits System.Web.UI.Page 
    Private con As New SqlConnection(ConfigurationManager.ConnectionStrings("test").ConnectionString) 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load 
     If Not IsPostBack Then 
      BindRatingControl() 
     End If 
    End Sub 
    Protected Sub RatingControlChanged(ByVal sender As Object, ByVal e As AjaxControlToolkit.RatingEventArgs) 
     con.Open() 
     Dim cmd As New SqlCommand("insert into rating(rate)values(@Rating)", con) 
     cmd.Parameters.AddWithValue("@Rating", ratingControl.CurrentRating) 
     cmd.ExecuteNonQuery() 
     con.Close() 
     BindRatingControl() 
    End Sub 
    Protected Sub BindRatingControl() 
     Dim total As Integer = 0 
     Dim dt As New DataTable() 
     con.Open() 
     Dim cmd As New SqlCommand("Select Rate from rating", con) 
     Dim da As New SqlDataAdapter(cmd) 
     da.Fill(dt) 
     If dt.Rows.Count > 0 Then 
      For i As Integer = 0 To dt.Rows.Count - 1 
       total += Convert.ToInt32(dt.Rows(i)(0).ToString()) 
      Next 
      Dim average As Integer = total \ (dt.Rows.Count) 
      ratingControl.CurrentRating = average 
      lbltxt.Text = dt.Rows.Count & "user(s) have rated this article" 
     End If 
    End Sub 
End Class 

Так может ли кто-нибудь помочь мне решить эту проблему.

ответ

3

На вашей странице default.aspx (передняя часть) появляется недостающее объявление страницы - это то, что говорит ему, какой код использовать.

Он должен быть в самой верхней строке файла default.aspx.

Пример страницы по умолчанию декларация:

<%@ Page Title="Home Page" Language="VB.net" MasterPageFile="~/Site.Master" 
AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebTest._Default" %> 

важные части являются:

CodeBehind="Default.aspx.cs" 
Inherits="WebTest._Default" 

Это говорит ASP.net двигатель, какой файл и имя класса, чтобы связать со страницей.

Вы уверены, что не случайно удалили эту строку и сохранили файл?

Это должно быть легко восстановить, просто скопировать из другого файла и исправить атрибуты CodeBehind и InheritsTitle), чтобы иметь соответствующие значения.

Смежные вопросы