ASP.NET网站 - .cs文件无法读取.aspx文件中的标签

时间:2017-08-11 08:14:32

标签: c# asp.net

我很欣赏这种情况很常见,但是我已经尝试了一些解决方案,但迄今为止都没有。我的项目是一个'网站'在Visual Studio中,我没有选择“右键单击”和“克里特岛新应用程序”。

我的aspx文件中的labelID名称无法在相应的.cs文件中读取 - 标记语法错误。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

    </head>


<body>


    <form id="form1" runat="server">
        <asp:TextBox ID="txtCity" runat="server" Text=""  />
        <asp:Button Text="Get Weather Forecast" runat="server" OnClick="GetWeatherInfo" Width="207px" />
        <hr />
        <asp:Repeater ID="Repeater_weatherReports" runat="server">
            <ItemTemplate>
                <table id="tblWeather" runat="server" border="0" visible="false">
                    <tr>
                        <th>
                            Weather Info
                        </th>
                    </tr>
                    <tr>
                        <td>
                            <asp:Label runat="server" ID="lblCity_Country" Text='<%# Eval("city.name") %>' />&nbsp;
                            humidity:<asp:Label runat="server" ID="Label_humidity" Text='<%# Eval("main.humidity") %>' />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            min:<asp:Label runat="server" ID="Label_min" Text='<%# Eval("main.temp_min") %>' />
                            max:<asp:Label runat="server" ID="Label_max" Text='<%# Eval("main.temp_max") %>' />
                        </td>
                    </tr>
                </table>
            </ItemTemplate>
        </asp:Repeater>


    </form>
</body>
</html>

奇怪的是,如果我点击“设计”,我甚至无法看到labelID。视图。见截图。我应该在这里看到labelID吗?

enter image description here

非常感谢任何帮助,谢谢

编辑 - 继承我的c#代码。我必须以某种方式循环遍历RepeatItems吗?

WeatherInfo weatherinfo = serializer.Deserialize<WeatherInfo>(json);

Repeater_weatherReports.DataSource = weatherinfo.list;
Repeater_weatherReports.DataBind();




int i = 0;
foreach (List list in weatherinfo.list)
{




    lblCity_Country = weatherinfo.city.name;
    //lblDescription.Text = weatherinfo.list[0].weather[0].description;


    Label_min = string.Format("{0}", Math.Round(weatherinfo.list[i].main.temp_min, 1));
    Label_max = string.Format("{0}", Math.Round(weatherinfo.list[i].main.temp_max, 1));
    Label_humidity = weatherinfo.list[i].main.humidity.ToString();
    tblWeather.Visible = true;



    i++;
}

1 个答案:

答案 0 :(得分:1)

您无法直接访问转发器或gridview或其他数据绑定控件内的标签。您可以使用转发器事件来访问它们。 e.x:

<asp:repeater onitemcreated="methodnameToCall1" onitemdatabind="methodnameToCall2" >

并通过c#中的findcontrol方法查找标签:

void methodnameToCall1(object s,typeofitemcreatedEventsArgs e){

if(e.itemtype == dataitemtype){
var lbl = e.item.findcontrol("lblId") as Label;

}
}

这是半代码,因为在堆栈android app中写道! Excuseme!