Gridview 行数据边界问题
我正在使用gridview的rowdatabound事件在gridview列中进行一些格式化。但是,当我执行代码并使用即时窗口进行调试时,在e.Row.Cells[1].Text中没有任何内容。我正在从数据表填充gridview。它正在显示记录,但我不知道为什么它没有进入行数据绑定。Gridview 行数据边界问题,gridview,Gridview,我正在使用gridview的rowdatabound事件在gridview列中进行一些格式化。但是,当我执行代码并使用即时窗口进行调试时,在e.Row.Cells[1].Text中没有任何内容。我正在从数据表填充gridview。它正在显示记录,但我不知道为什么它没有进入行数据绑定。 下面是我的绑定代码 <asp:GridView runat="server" AutoGenerateColumns="False" ID="gviewTe
下面是我的绑定代码
<asp:GridView runat="server" AutoGenerateColumns="False"
ID="gviewTemplate" onrowdatabound="gviewTemplate_RowDataBound" DataKeyNames="F1"
onrowcommand="gviewTemplate_RowCommand"
onrowediting="gviewTemplate_RowEditing"
onrowcancelingedit="gviewTemplate_RowCancelingEdit"
onrowupdating="gviewTemplate_RowUpdating">
<Columns>
<asp:TemplateField>
<EditItemTemplate>
<asp:Label ID="lblID" runat="server" Text='<%# Bind("F1") %>'></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:Label Runat="server" Text='<%# Bind("F1") %>' ID="lblID1"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Uploaded Image">
<EditItemTemplate>
<asp:LinkButton Text="Reload" runat="server" CommandArgument='<%# Bind("F1") %>' CommandName="reload" ID="lbtnReloadImage"></asp:LinkButton>
</EditItemTemplate>
<ItemTemplate>
<asp:Label Runat="server" Text='<%# Eval("Uploaded") %>' ID="lblUploaded"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Template Name">
<ItemStyle VerticalAlign="Top" HorizontalAlign="Center" />
<EditItemTemplate>
<asp:TextBox ID="txtTemplateName" Width="50" Runat="server" Text='<%# Eval("F2") %>'></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" Runat="server"
ErrorMessage="You must provide a Product Name." ControlToValidate="txtTemplateName">*</asp:RequiredFieldValidator>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblTemplateName" runat="server" Text='<%# Eval("F2") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Heading">
<ItemStyle VerticalAlign="Top" HorizontalAlign="Center" />
<EditItemTemplate>
<asp:TextBox ID="txtHeading" Runat="server" Width="50" Text='<%# Eval("F3") %>'></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" Runat="server"
ErrorMessage="You must provide a Product Name." ControlToValidate="txtHeading">*</asp:RequiredFieldValidator>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblHeading" runat="server" Text='<%# Eval("F3") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Coupon Text">
<ItemStyle VerticalAlign="Top" HorizontalAlign="Center" />
<EditItemTemplate>
<asp:TextBox ID="txtCouponText" Runat="server" Width="50" Text='<%# Bind("F4") %>'></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" Runat="server"
ErrorMessage="You must provide a Product Name." ControlToValidate="txtCouponText">*</asp:RequiredFieldValidator>
</EditItemTemplate>
<ItemTemplate>
<asp:Label Runat="server" Text='<%# Bind("F4") %>' ID="lblCouponText"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
我无法理解记录是否显示在网格中,为什么我无法在rowdatabound中获取它,因为您正在网格中使用模板字段,所以请尝试调试并保持单元格,然后尝试查找其中的文本框,然后读取其值尝试以下操作:
您需要检查行类型,因为在行数据绑定中,它还包括页眉、页脚
protected void GridView1_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow & (e.Row.RowState == DataControlRowState.Normal | e.Row.RowState == DataControlRowState.Alternate)) {
//your code here
}
}
但是现在我该如何储存单元格背景的颜色呢?你可以在模板的表格或面板中放置一个cContainer,然后在titan上应用背景色,谢谢你的代码,你能告诉我一件事吗?有没有一种方法可以让表格占据网格中单元格的所有空间。我的意思是桌子在一个小房间里,我想让它占据桌子的所有空间。
protected void GridView1_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow & (e.Row.RowState == DataControlRowState.Normal | e.Row.RowState == DataControlRowState.Alternate)) {
//your code here
}
}