定义一个模版列,加入一个checkbox将可用属性改为false

解决方案 »

  1.   

    DataGrid说明 
    本文所有举例都将使用以下DataGrid: 
    <asp:DataGrid id="dg" runat="server" 
    Bordercolor="black" 
    gridlines="vertical" 
    font-names="Arial" 
    font-size="10pt" 
    HeaderStyle-BackColor="#FFCC00" 
    ItemStyle-BackColor="#FFCC66" 
    AlternatingItemStyle-BackColor="#FFFFFF" 
    AutoGenerateColumns="False"> 
     
    <Columns> 
     
    </Columns> 
    </asp:datagrid> 
    以上DataGrid并不能直接使用,我们需要和具体应用结合。在这里,我们主要目的是知道这个DataGrid的一些具体设置情况。 
     
    TemplateColumn 
    我们知道,有很多方法可以显示一些特殊的数据列,比如使用boundcolumns, hyperlinkcolumns等。然而,使用TemplateColumn可以帮助我们实现更多功能,看以下几个举例: 
    CheckBox / CheckBoxList 
    CheckBox可以被用于选择一个数据(事情)的状态是真、假等,由于其很直观的使用“勾”和“叉”来表示真、假,所以,往往比一个简单的“Yes”和“No”更加受欢迎。在DataGrid中,我们可以使用CheckBox来实现很好的数据删除功能,首先,我们让访问者选择需要删除的数据,然后在DataGrid的底部提供一个数据删除提交按钮,这样的删除功能用户比较不容易出错。来看一个举例: 
    <asp:templatecolumn> 
    <itemtemplate> 
    <asp:checkbox runat="server" Checked='<%# Container.DataItem("Married") %>' Enabled="False" id="chk1" /> 
    </itemtemplate> 
    </asp:templatecolumn> 
    程序执行效果如下: 
     
     
    以上程序中,CheckBox用于显示数据字段Married,如果该数据字段为真,CheckBox为勾;如果为假,CheckBox为叉。我们发现,使用CheckBox来表现数据字段的真假很直观。 
    RadioButton / RadioButtonList 
    RadioButton的使用,我们可以参考以下代码: 
    <asp:templatecolumn> 
    <edittemplate> 
    <asp:radiobuttonList runat="server"> 
    <asp:listitem value="Trek">Star Trek</asp:listitem> 
    <asp:Listitem value="Wars">Star Wars</asp:listitem> 
    </asp:radiobuttonlist> 
    </edittemplate> 
    </asp:templatecolumn> 
    程序执行效果如下: 
     
     
    什么时候使用TemplateColumns 
    本文所有举例都使用templatecolumn来显示数据。尽管不是所有数据显示都是使用templatecolumn,但是,当我们需要对DataGrid具有较多控制的时候,就必须使用它。比如, 
    HyperLink column只许显示一列数据,当我们需要显示更多的时候,就必须使用templatecolumn了,代码如下: 
    <asp:templatecolumn> 
    <itemtemplate> 
    <a href=../view.aspx?id=<%# Container.DataItem("ID") %>><%# Container.DataItem("ID") & Container.DataItem("Name") %></a> </itemtemplate>  
    </asp:templatecolumn> 
     
    数据验证 
    程序的严谨最起码也是最常见的就是提交前的数据验证,在DataGrid中使用Web Forms也有这个要求: 
    <asp:templatecolumn> 
    <itemtemplate> 
    <%# Container.DataItem("Age") %> 
    </itemtemplate> 
    <edititemtemplate> 
    <asp:RegularExpressionValidator runat="server" ControlToValidate="txtAge" ErrorMessage="Invalid input for Age" 
    ValidationExpression="[0-9]{2}" /><br> 
    <asp:textbox runat="server" id="txtAge" value='<%# Container.DataItem("Age") %>' /> 
    </edititemtemplate> 
    </asp:templatecolumn>
      

  2.   

    对不起,我作的是C/S的结构,不是用的ASP.NET的