我在写asp.net 的代码时碰到这样的问题,有时在aspx.cs文件里写的代码对aspx里的用html语法写的控件好象不起作用,如果把代码 copy 到html页面里放在<script></script>里就能起作用了.代码完全一样直接copy过去。请大伙赐教。

解决方案 »

  1.   

    看看在aspx.cs文件里有没有声明那个控件 就是像这样的语句
    protected System.Web.UI.WebControls.Button Button1;
      

  2.   

    最好你还是直接把控件拖到要使用的地方,VS2003才会自己创建代码。例如上面所讲的protected System.Web.UI.WebControls.Button Button1;
      

  3.   

    SqlConnection myConnection=new SqlConnection("data source=WANG-669DC1249A;initial catalog=pubs;password=sa;persist security info=True;user id=sa;workstation id=WANG-669DC1249A;packet size=4096");private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    SqlDataAdapter myCommand = new  SqlDataAdapter("select * from Titles where type = 'business'",myConnection);
    DataSet ds = new DataSet();
    myCommand.Fill(ds,"titles"); MyDataList.DataSource=ds.Tables["titles"].DefaultView;
    MyDataList.DataBind();

    } void MyDataList_Select(Object sender, EventArgs e)
    {
    string title = MyDataList.DataKeys[MyDataList.SelectedItem.ItemIndex].ToString();      
    SqlDataAdapter myCommand = new SqlDataAdapter("select * from Titles where title_id = '" + title + "'" , myConnection); DataSet ds = new DataSet();
    myCommand.Fill(ds, "书名详细信息"); DataRowView rowview = ds.Tables["书名详细信息"].DefaultView[0]; DetailsImage.Src = "/quickstart/aspplus/images/title-" + rowview["title_id"] + ".gif"; DetailsPubId.InnerHtml = "<b>出版商 ID:</b>" + rowview["pub_id"].ToString() + "<br>"; DetailsTitleId.InnerHtml = "<b>书名 ID:</b>" + rowview["title_id"].ToString() + "<br>"; DetailsType.InnerHtml = "<b>类别:</b>" + rowview["type"].ToString() + "<br>";
    DetailsPrice.InnerHtml = "<b>价格:</b> $ " + rowview["price"].ToString() + "<p>"; PurchaseLink.InnerHtml = "<img border='0' src='/quickstart/aspplus/images/purchase_book.gif' >"; PurchaseLink.HRef="purchase.aspx?titleid=" + rowview["title_id"].ToString(); DetailsTitle.InnerHtml = rowview["title"].ToString(); DetailsImage.Visible = true; }上面这段代码如果我放在aspx.cs文件里就会出错,如果放到 html 的<script></script>
    里,则能正常的调试。代码完全没有改动一个字母也没变动过。放在aspx.cs文件里出错的提示为'ASP.datalist4_aspx' does not contain a definition for 'MyDataList_Select'但放在html 的<script></script>为什么就可以呢?
      

  4.   

    protected System.Web.UI.WebControls.DropDownList MyDataList;
    private void InitializeComponent()
    {    
    this.MyDataList.SelectedIndexChange += new System.EventHandler(this.MyDataList_Select);
    this.Load += new System.EventHandler(this.Page_Load);
    }
      

  5.   

    回复 net_lover还是原来的错误提示。
      

  6.   

    就是'ASP.datalist4_aspx' does not contain a definition for 'MyDataList_Select'
      

  7.   

    table width="100%">
    <tr>
    <td width="50%">
             <ASP:DataList 
    id="MyDataList" 
    DataKeyField="title_id" 
    OnSelectedIndexChanged="MyDataList_Select" 
    runat="server"> <ItemTemplate> <table cellpadding="10" style="font: 10.5pt 宋体">
    <tr>
       <td valign="top">
       <img align="top" width="25" border=1 src='<%# DataBinder.Eval(Container.DataItem, "title_id", "/quickstart/aspplus/images/title-{0}.gif") %>' runat="server" ID="Img1"/>
      </td>
      <td valign="top">
    <b>书名:</b>
    <asp:linkbutton Text='<%# DataBinder.Eval(Container.DataItem, "title") %>' CommandName="select" style="color:darkred" runat="server" ID="Linkbutton1"/>
    <br>
    <b>价格:</b><%# DataBinder.Eval(Container.DataItem, "price", "$ {0}") %><br>
    </td>
    </tr>
    </table>
    </ItemTemplate>
    </ASP:DataList>
    </td>
    <td valign="top" style="PADDING-TOP:15px" width="50%">
    <table cellpadding="5" width="100%" style="FONT: 10.5pt 宋体">
    <tr>
    <td>
    <img id="DetailsImage" visible="false" runat="server">
    </td>
    <td valign="top" width="400">
    <div style="FONT: 12pt 宋体; COLOR: darkred">
    <i><b><span id="DetailsTitle" runat="server"></i></B><br>
    </div>
    <span id="DetailsTitleId" runat="server"><span id="DetailsPubId" runat="server"><span id="DetailsType" runat="server"> <span id="DetailsPrice" runat="server"><a id="PurchaseLink" runat="server"></a></span>
    </span></span></span></SPAN>
    </td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
      

  8.   

    <ASP:DataList 
    id="MyDataList" 
    DataKeyField="title_id" 
    OnSelectedIndexChanged="MyDataList_Select" 
    runat="server">
    这里有问题,把OnSelectedIndexChanged="MyDataList_Select"这行删了
      

  9.   

    为什么 多了 OnSelectedIndexChanged="MyDataList_Select这行就会出错而在 html 里  <script></script>里有这行也不会出错。能告诉原因吗?
      

  10.   

    我把  OnSelectedIndexChanged="MyDataList_Select“ 这行删了之后,代码的有些功能就不能用了。
    就是    MyDataList_Select(Object sender, System.EventArgs e)
         {
              ....
         }
    里面的功能就不会实现。