0

簡単なポーリングページを実行したいのですが、動作するはずのコードがありますが、.csファイルがグリッドビューを認識したくないようです。

public partial class _Default : System.Web.UI.Page 
{
    int Count = 0;
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void btnVote_Click(object sender, EventArgs e)
    {
        if (radVote.SelectedItem != null)
        {
            InsertVotes(radVote.SelectedItem.ToString());
        }
        else
        {
            lblStatus.ForeColor = Color.Red;
            lblStatus.Text = "Please select at least one option to vote for poll";
        }
    }

    protected void InsertVotes(string theVote)
    {
        try
        {
            XmlDocument xmldoc = new XmlDocument();
            xmldoc.Load(Server.MapPath("Votes.xml"));
            XmlElement parentelement = xmldoc.CreateElement("Vote");
            XmlElement votechoice = xmldoc.CreateElement("Choice");
            votechoice.InnerText = theVote;
            parentelement.AppendChild(votechoice);
            xmldoc.DocumentElement.AppendChild(parentelement);
            xmldoc.Save(Server.MapPath("Votes.xml"));
            lblStatus.ForeColor = Color.Green;
            lblStatus.Text = "Thank you for your vote.";
        }
        catch
        {
            lblStatus.Text = "Sorry, unable to process request. Please try again.";
        }
    }

protected void readXML()
{
    int mCount = 0;
    int iCount = 0;
    int gCount = 0;
    XmlTextReader xmlreader = new XmlTextReader(Server.MapPath("Votes.xml"));
    DataSet ds = new DataSet();
    ds.ReadXml(xmlreader);
    xmlreader.Close();
    if (ds.Tables.Count > 0)
    {
        int dscount = ds.Tables[0].Rows.Count;
        for (int i = 0; i < dscount; i++)
        {
            if (ds.Tables[0].Rows[i][0].ToString() == "Mozilla")
                mCount++;
            else if (ds.Tables[0].Rows[i][0].ToString() == "Internet Explorer")
                iCount++;
            else if (ds.Tables[0].Rows[i][0].ToString() == "Google Chrome")
                gCount++;
        }

        double theTotal;
        theTotal = mCount + iCount + gCount;

        double mPercent;
        double oPercent;
        double gPercent;
        mPercent = (mCount / theTotal) * 100;
        oPercent = (iCount / theTotal) * 100;
        gPercent = (gCount / theTotal) * 100;

        double totalpercentage = mPercent + oPercent + gPercent;

        string[] votescount = { mCount.ToString(), iCount.ToString(), gCount.ToString() };
        string[] array = { mPercent.ToString(), oPercent.ToString(), gPercent.ToString() };
        DataTable dt = new DataTable();

        dt.Columns.Add("OPTION_NAME");
        dt.Columns.Add("VOTES");
        dt.Columns.Add("PERCENTAGE");

        int count = radVote.Items.Count;
        Count = count + 1;

        for (int i = 0; i < count; i++)
        {
            dt.Rows.Add();
            dt.Rows[i]["OPTION_NAME"] = radVote.Items[i].ToString();
            dt.Rows[i]["VOTES"] = votescount[i];
            dt.Rows[i]["PERCENTAGE"] = array[i];
        }
            dt.Rows.Add("Total", theTotal, totalpercentage);
            gvResult.DataSource = dt;
            gvResult.DataBind();
   }
   else
   {
        gvResult.DataSource = null;
        gvResult.DataBind();
   }
}

protected void butResults_Click(object sender, EventArgs e)
{
    readXML();
}

int cnt = 0;
protected void gvResult_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)

    cnt++;

    Label lblpercent = (Label)e.Row.FindControl("lblpercentage");
    HtmlTable tblpercent = (HtmlTable)e.Row.FindControl("tblBar");
    tblpercent.Width = lblpercent.Text+"%";

    if (lblpercent.Text == "0")
    {
        tblpercent.Visible = false;
    }

    if (cnt == Count)
    {
        e.Row.CssClass = "TablePollResultFoot";
    }

    foreach (TableCell tc in e.Row.Cells)
    {
        tc.Attributes["style"] = "border-color:#CCCCCC";
    }
}

protected void btnResult_Click(object sender, EventArgs e)
{
    readXML();
}

}

gvResult、radVote、lblStatusにはすべて、名前が現在のコンテキストに存在しないというエラーがあります。名前を確認しましたが、すべて問題ないようですが、それでもこのエラーが発生します。

HTMLには、radiobuttonlist、gridview、投票用の1つのボタン、および結果を表示するための1つのボタンがあります。

4

2 に答える 2

0

ページ ファイルがデザイナー ファイルと同期していない可能性があります。新しいページを作成し、そこにグリッドを移動して、問題が解決するかどうかを確認しますか?

デザイナー ファイルにコントロールの宣言を手動で追加することもできますが、これはお勧めしません。

于 2012-12-29T16:18:26.043 に答える
0

または、デザイナー ファイルを削除して、ASP.Net で再生成することもできます。ここに長い説明がありますが、基本的には、問題の .designer.cs ファイルを削除するだけです。再生成するには、ソリューション エクスプローラーで .aspx ファイルをクリックし、[Web アプリケーションに変換] をクリックします。

于 2012-12-29T16:26:47.180 に答える