首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

关于Datagird的一个小疑点

2013-08-01 
关于Datagird的一个小问题一个Datagrid前台代码:asp:BoundColumnReadOnlytrueDataFieldIdItemSty

关于Datagird的一个小问题
一个Datagrid

前台代码:


<asp:BoundColumn   ReadOnly="true"  DataField="Id">
<ItemStyle Wrap="False"></ItemStyle>
</asp:BoundColumn>

<asp:TemplateColumn HeaderText="ABC">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "TypeName").ToString()%>
</ItemTemplate>
<EditItemTemplate>
<asp:Label ID="Label2" runat="server"  Text=""  ></asp:Label>
<asp:TextBox ID="txt_TypeName" runat="server" ></asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>

<asp:EditCommandColumn CancelText="取消" EditText="编辑" UpdateText="更新"></asp:EditCommandColumn>




后台代码:


public void edit(object sender, DataGridCommandEventArgs e)
        {
            Label Label2 = (Label)Datagrid1.Items[e.Item.ItemIndex].Cells[1].Controls[0];            
            Label2.Text = "7";
        }




程序运行到Label2.Text = "7";这一句报错,意思是没找到Label2这个控件,请问这个问题应该如何解决?





[解决办法]
参考正确的html代码:

<asp:TemplateColumn>
                        <EditItemTemplate>
                            <asp:LinkButton ID="lbkEditUpdate" runat="server" CausesValidation="True" CommandName="Update" Text="Update"></asp:LinkButton>
                            <asp:LinkButton ID="lnkEditCancel" runat="server" CausesValidation="True" CommandName="Cancel" Text="Cancel"></asp:LinkButton>


                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:LinkButton ID="lblEdit" runat="server" Text="Edit" CommandName="Edit"></asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateColumn>


[解决办法]
<asp:GridView ID="GridView1" runat="server" Width="100%" CellPadding="4" ForeColor="#333333"
                AutoGenerateColumns="False" AllowPaging="True" DataKeyNames="id" GridLines="None"
                OnPageIndexChanging="GridView1_PageIndexChanging" OnRowCancelingEdit="GridView1_RowCancelingEdit"
                OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" >
                <Columns>
                    <asp:TemplateField HeaderText="编号" HeaderStyle-Width="15%">
                        <ItemTemplate>
                            <%# Eval("id")%>
                        </ItemTemplate>
                        <ItemStyle HorizontalAlign="Center" />
                    </asp:TemplateField>


                    <asp:TemplateField HeaderText="生产企业名称" HeaderStyle-Width="30%">
                        <ItemTemplate>
                            <%# Eval("name")%>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="name" Text='<%# Eval("name") %>' runat="server" />
                        </EditItemTemplate>
                        <ItemStyle HorizontalAlign="Center" />
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="生产企业编码" HeaderStyle-Width="20%">
                        <ItemTemplate>
                            <%# Eval("code")%>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="code" Text='<%# Eval("code") %>' runat="server" />
                        </EditItemTemplate>


                        <ItemStyle HorizontalAlign="Center" />
                    </asp:TemplateField>
                    <asp:CommandField ShowEditButton="True" EditText="编辑" HeaderText="操作" HeaderStyle-Width="8%" />
                    <asp:TemplateField ShowHeader="False" HeaderStyle-Width="8%">
                        <ItemTemplate>
                            <asp:LinkButton ID="LinkButton1" OnClientClick="return confirm('确认删除吗?')" runat="server"
                                CausesValidation="False" CommandName="Delete" Text="删除"></asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
                <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="center" />
                <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                <EditRowStyle BackColor="#999999" />


                <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
            </asp:GridView>



 protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            this.GridView1.PageIndex = e.NewPageIndex;
            GridViewBind();
        }

        protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            GridView1.EditIndex = -1;
            GridViewBind();
        }

        protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            int id = int.Parse(GridView1.DataKeys[e.RowIndex].Values[0].ToString().Trim());
            try
            {
                bll.Delete(id);
                Response.Write("<script>alert('删除数据成功!')</script>");
                GridView1.EditIndex = -1;
                GridViewBind();
            }
            catch
            {
                Response.Write("<script>alert('删除数据失败!')</script>");
                return;
            }
        }

        protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)


        {
            GridView1.EditIndex = e.NewEditIndex;
            GridViewBind();
        }

        protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            T_QYBM model = new T_QYBM();
            model.ID = int.Parse(GridView1.DataKeys[e.RowIndex].Values[0].ToString().Trim());
            model.NAME = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("name")).Text;
            model.CODE = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("code")).Text;
            model.BZ1 = "";
            model.BZ2 = "";
            model.BZ3 = "";

            try
            {
                bll.Update(model);
                Response.Write("<script>alert('修改数据成功!')</script>");
                GridView1.EditIndex = -1;
                GridViewBind();
            }
            catch
            {
                Response.Write("<script>alert('修改数据失败!')</script>");
                return;
            }
        }

热点排行