禁用Viewstate在使用母版的内容页面里使用Datalist可能不触发事件的解决方案
<pages enableEventValidation="false" validateRequest="false" theme="021friend" enableViewState="false" enableViewStateMac="false"/>
有一个DataList控件,在它的模板里放置了两个按钮
<asp:DataList ID="DataList1"  DataSourceID="SqlDataSource1" RepeatColumns=4 runat="server" DataKeyField="pic_id"  onitemcommand="DataList1_ItemCommand" width="162px"><ItemTemplate>
 
 
 
<asp:Button CausesValidation="false"  runat=Server ID="delete" Text="删除照片" CommandName="delete"  BorderStyle=solid BorderColor=#336699 BorderWidth=1px/>
<asp:Button  CausesValidation="false"  runat=Server ID="setup" Text="set" CommandName="setup"  BorderStyle=solid BorderColor=#336699 BorderWidth=1px/>
 
 
</div>
 <hr />
</ItemTemplate>
</asp:DataList>
protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
...
DataList1.DataSource = ds.Tables[0];
       DataList1.DataBind();
        }
    }
但是在执行过程中,通过设置断点,DataList1_ItemCommand根本不会执行,解决这个问题有2个方法:
1)启用viewstate,但是这里在page指令里适用viewstate=true并不可以,因为你适用了母版,如果没有母版就可以的,所以你需要在web.config设置启用viewstate
2)适用SqlDataSource控件,也就是在SqlDataSource里绑定DataLists
 
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号