Compilation Error 
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. Compiler Error Message: CS0122: 'System.Web.UI.WebControls.RepeaterItem.dataItem' is inaccessible due to its protection levelSource Error: Line 39:  <span class="style2">&nbsp;&nbsp; 编号:1 发布时间:2004-09-04 发布者:Admin</span></td>
Line 40:  <td width="13%">1</td>
Line 41:  <td><%#Databinder.Eval(Container.dataItem,"Fname")%></td>
Line 42:  </tr>
Line 43:  </table>
 Source File: http://localhost/mstcweb/web/Resources/List.aspx    Line: 41 

解决方案 »

  1.   

    CS0122: 'System.Web.UI.WebControls.RepeaterItem.dataItem' is inaccessible due to its protection level这个是什么错误?怎么解决?
      

  2.   

    那应该把什么设置成public?
    Repeater?还是数据源什么的?
      

  3.   

    <%#Databinder.Eval(Container.dataItem,"Fname")%>   --- 是"Fname" inaccessible
    請查看數據源中"Fname"是否正常.
      

  4.   

    我把MSDN里的一个例子copy过来了。不太明白你说的。这是源代码,快帮我看看阿~
    private void Page_Load(object sender, System.EventArgs e)
    {
    // IList sortList = null;
    // BLL.Sort sort = new Sort();
    // sortList = sort.GetSortByParentId(1,1);
    DataSet dSet = new DataSet();
    DataTable dTable = MakeNamesTable();
    Repeater1.DataSource = dTable;
    Repeater1.DataBind();
    // Put user code to initialize the page here
    }
    private void CreateNewDataRow()
    {
    // Use the MakeTable function below to create a new table.
    DataTable myTable;
    myTable = MakeNamesTable();
    // Once a table has been created, use the NewRow to create a DataRow.
    DataRow myRow;
    myRow = myTable.NewRow();
    // Then add the new row to the collection.
    myRow["fName"] = "John";
    myRow["lName"] = "Smith";
    myTable.Rows.Add(myRow);
        
    foreach(DataColumn dc in myTable.Columns)
    Console.WriteLine(dc.ColumnName);
    Repeater1.DataSource=myTable;
    }
     
    private DataTable MakeNamesTable()
    {
    // Create a new DataTable titled 'Names.'
    DataTable namesTable = new DataTable("Names"); 
    // Add three column objects to the table.
    DataColumn idColumn = new  DataColumn();
    idColumn.DataType = System.Type.GetType("System.Int32");
    idColumn.ColumnName = "id";
    idColumn.AutoIncrement = true;
    namesTable.Columns.Add(idColumn);
    DataColumn fNameColumn = new DataColumn();
    fNameColumn.DataType = System.Type.GetType("System.String");
    fNameColumn.ColumnName = "Fname";
    fNameColumn.DefaultValue = "Fname";
    namesTable.Columns.Add(fNameColumn);
    DataColumn lNameColumn = new DataColumn();
    lNameColumn.DataType = System.Type.GetType("System.String");
    lNameColumn.ColumnName = "LName";
    namesTable.Columns.Add(lNameColumn);
    // Create an array for DataColumn objects.
    DataColumn [] keys = new DataColumn [1];
    keys[0] = idColumn;
    namesTable.PrimaryKey = keys;
    // Return the new DataTable.
    return namesTable;
    }
      

  5.   

    這段代碼沒問題呀. 調用時注明大小寫, fName和Fname不同.
    <%#Databinder.Eval(Container.dataItem,"Fname")%>
    查看是否有定義Fname.
      

  6.   

    protected Repeater Repeater1;