((TextBox)e.Item.FindControl("txtReverts")).Text; 不要发这个了,这个似乎没办法获取EditItemTemplate中控件的值。。是否还有办法呀。。每次都提示错误高手指点一下

解决方案 »

  1.   

    或者说代码写在哪里?照理说不是写在itemCommand事件中对把?
      

  2.   

    if(e.Item.ItemType   ==   ListItemType.Edit) 

        TextBox txtReverts= e.Item.FindControl( "txtReverts") as TextBox; 
    }
      

  3.   

    dlsp.EditItemIndex   =   e.Item.ItemIndex; 
    bind(); 
    ((TextBox)e.Item.FindControl(""))
      

  4.   


    还是不行哦。我还是说下我的问题吧。我留言的内容是显示在itemTemplate,点击编辑的时候,就到EditItemTemplate,这个地方是回复留言的,这里就有个文本框TextBox txtReverts。。我现在就想要获取这个文本框的内容。。要是写在ItemDataBound事件中,岂不是还没加载EditItemTemplate???
      

  5.   

    照理说不是写在itemCommand事件中对把?
      

  6.   


    if(e.Item.ItemType == ListItemType.Edit) 没有ListItemType.Edit呀。。只有ListItemType.EditItem
      

  7.   

    在你的DataList的EditItemTemplate模版中,应该有一更新按钮,
    若是Button,则设置CommandName属性为"UpDate",如下:
                <EditItemTemplate>
                    <asp:TextBox ID="txtReverts" runat="server" Text="abcd" ></asp:TextBox>
                    <asp:Button ID="Button1" runat="server" Text="Button"  CommandName="Update"/>
                </EditItemTemplate>若是这样的标准设置,则可以在两个事件中获得!
    1.ItemCommand事件中,如下:
        protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
        {
            if (e.CommandName == "Update")
            {
                string s = ((TextBox)e.Item.FindControl("txtReverts")).Text;
                Response.Write(s);
            }
        }2.或者在UpdateCommand事件中获得:
        protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
        {
            string s = ((TextBox)e.Item.FindControl("txtReverts")).Text;
            Response.Write(s);
        }
      

  8.   


    泪奔啊,你既然都提到UpdateCommand,我也就说一下,我不知我是不是撞鬼了我UpdateCommand没办法触发CancelCommand也一样,不过DeleteCommand和EditCommand就可以触发,DeleteCommand和EditCommand是在ItEm模板的,UpdateCommand没办法触发CancelCommand是在Edit模板的不知为何,老是没办法触发前两个事件
      

  9.   

    设置CommandName="Update"
    可定能触发!
      

  10.   

    还有啊。。string s = ((TextBox)e.Item.FindControl("txtReverts")).Text提示的是:未将对象引用设置到对象的实例。  
    对了,我在源设计那里放了EnableEventValidation ="false",不放这个的话,提示:回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。 我无语了,帮帮忙我多加分
      

  11.   


    就是不能触发嘛。我说才撞鬼了。所以为了能发表回复留言,我才在Edit模板中的按钮双击写代码,我需要这个文本框的内容写入到数据库中
      

  12.   

    EnableEventValidation ="false"
    也可以取到的!
      

  13.   

    那在ItemCommand中总能取到吧!
      

  14.   


    对啊,我要死翘翘了。加跟没加那句,DeleteCommand和EditCommand依然可以触发,那两个还是不行。。崩溃ing
      

  15.   

    全部放到ItemCommand中去执行!!
      

  16.   


    不能,提示的是:未将对象引用设置到对象的实例。   你移步看一下这个贴,这位同学跟我一样的问题,不过他好像领悟到了什么,你可不可以帮我看看,拜托拜托   http://topic.csdn.net/u/20071107/11/d5670a8f-16d5-4a9e-8075-c9d42515e911.html
      

  17.   

    兄弟,你ItemCommand触发了吗?
    如果触发了,就判断点了什么按钮就可以了!!
      

  18.   


    死了死了,我点了“回复”(ITem模板的)触发了,
    if (e.CommandName == "Update")
                {
                    Session["ID"] = DataListMessages.DataKeys[e.Item.ItemIndex].ToString();
                    Session["txtReverts"] = ((TextBox)e.Item.FindControl("txtReverts")).Text;
                }
    没执行,跳过了。IF判断不符合
    进到Edit模板,点了(提交CommandName设了Update,就是回复留言)没触发ItemCommand
      

  19.   

    你是这样吗?
            if (e.CommandName == "Edit")
            {
                DataList1.EditItemIndex = e.Item.ItemIndex;
                //绑定数据!!
            }
      

  20.   

    编辑那个事件我可以用,我:
    protected void DataListMessages_EditCommand(object source, DataListCommandEventArgs e)
            {
                DataListMessages.EditItemIndex = e.Item.ItemIndex;
                DataListMessages.DataBind();
            }
      

  21.   

    Page_Load中你是这样吗?
    if(!IsPostBack)
       //绑定数据
      

  22.   

    koukoujiayi
    。你还在吗?你最后一句啊,真是~~我绑定数据写到了if(!IsPostBack)外面了,怪不得UpdateCommand老是激发不了现在可以激发了