1 错误提示:oilnew.admin.datagrid.CutString(string, int)”,因为它受保护级别限制
我后面用private void...
就会出这个错误,申请成public就好了?为什么不能申请成private,vs中我双击一个按钮它自己写的事件就可以是private void的呢?2 在OnUpdateCommand="DoItemUpdate"事件中,我这么写
TextBox objText=(TextBox)DataGrid1.SelectedItem.Cells[1].FindControl("edittext");就找不到控件,但是这么写
 TextBox myText=(TextBox)e.Item.FindControl("edittext");
就能找到
为什么刚才那么写找不到呢?先声明是cells的数值绝对没有错的3 public string CutString(string inputString,int len)这个函数是截标题字符串的,我在aspx页面里<%# CutString(DataBinder.Eval(Container,"DataItem.title"),2)%>
提示:最匹配的重载方法具有一些无效参数
但测试一下<%# CutString("sdfdsfsdfdsfds",2)%>就是对的,怎么回事啊?4 <%#DataBinder.Eval(Container,"DataItem.id")%>和<%#DataBinder.Eval(Container.DataItem,"id")%> 什么区别?5 为什么我在aspx里这么写
<%# Container.DataItem("title")%>
编译器错误信息: CS0118: “System.Web.UI.WebControls.DataGridItem.DataItem”表示“属性”,
此处应为“方法”
但是这么写<%#DataBinder.Eval(Container,"DataItem.id")%>就对了呢?

解决方案 »

  1.   

    1.必须是protected以上 , 你看aspx中开头一行,是继承.cs文件中的class,并不是同一class2. SelectedItem是否就是当前item?
    3.DataBinder.Eval(Container,"DataItem.title").ToString()
    直接写在页面上会强制转成String, 但传到函数中就不会
    4.不清楚
    5.C#中(都表示方法,属性应为[]
    Eval是方法.
      

  2.   

    cpp2017(幕白兄)
    2. SelectedItem是否就是当前item?
    ---Update时,我选中这一行来update,SelectedItem不是当前的行,那么这个SelectedItem代表什么意思呢?
    3.DataBinder.Eval(Container,"DataItem.title").ToString()
    直接写在页面上会强制转成String, 但传到函数中就不会---csdn好多函数都是截取datagrid标题的,都是这么套用的啊
      

  3.   

    4 <%#DataBinder.Eval(Container,"DataItem.id")%>和<%#DataBinder.Eval(Container.DataItem,"id")%> 什么区别?
    ——似乎没有什么区别!
    那么这个SelectedItem代表什么意思呢?
    ——当前行啊!
      

  4.   

    如果是当前行,为什么
    TextBox objText=(TextBox)DataGrid1.SelectedItem.Cells[1].FindControl("edittext");就找不到控件?
      

  5.   

    update时,要用edititem来判断,而不是selectItem.
    DataBinder.Eval(Container,"DataItem.title")结果不是string,后面要加.ToString()或用convert