代码如下
<asp:GridView ID="grvTargetList" runat="server" Width="100%" EmptyDataText="没有相关项目信息"
AutoGenerateColumns="False" DefaultSort="Target_ID" OnRowEditing="btEdit_Click" OnRowUpdating="btOK_Click" OnRowCancelingEdit="btCancel_Click">
<Columns>
<asp:TemplateField HeaderText="指标名称">
<EditItemTemplate>
<asp:TextBox ID="tbName" runat="server" Text='<%# Bind("Target_Name") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblName" runat="server" Text='<%# Bind("Target_Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="指标单位">
<EditItemTemplate>
<asp:TextBox ID="tbUnit" runat="server" Text='<%# Bind("Target_Unit") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblUnit" runat="server" Text='<%# Bind("Target_Unit") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="目标值">
<EditItemTemplate>
<asp:TextBox ID="tbGoal" runat="server" Text='<%# Bind("Target_Goal") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblGoal" runat="server" Text='<%# Bind("Target_Goal") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="权重">
<EditItemTemplate>
<asp:TextBox ID="tbWeight" runat="server" Text='<%# Bind("Target_Weight") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblWeight" runat="server" Text='<%# Bind("Target_Weight") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField HeaderText="编辑" ShowEditButton="True" CausesValidation="False" />
</Columns>
<HeaderStyle Font-Bold="True" Font-Names="宋体" ForeColor="White" Height="20px" HorizontalAlign="Center"
VerticalAlign="Middle" />
<PagerStyle Font-Bold="True" Font-Names="宋体" ForeColor="White" Height="20px" HorizontalAlign="Center"
VerticalAlign="Middle"/>
</asp:GridView>
/// <summary>
/// 更新按钮按下时
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btOK_Click(object sender, GridViewUpdateEventArgs e)
{ GridViewRow loGridRow = this.grvTargetList.Rows[e.RowIndex];
//这里就会出错了,loGridRow.FindControl("tbName")为null
string lsTargetName = ((TextBox)loGridRow.FindControl("tbName")).Text.Trim();
string lsTargetUnit = ((TextBox)loGridRow.FindControl("tbUnit")).Text.Trim();
string lsGoal = ((TextBox)loGridRow.FindControl("tbGoal")).Text.Trim();
string lsWeight = ((TextBox)loGridRow.FindControl("tbWeight")).Text.Trim();
//恢复到浏览状态
grvTargetList.EditIndex = -1;
this.grvTargetList.DataBind(moItemsDs.ProjectTarget);
}
<asp:GridView ID="grvTargetList" runat="server" Width="100%" EmptyDataText="没有相关项目信息"
AutoGenerateColumns="False" DefaultSort="Target_ID" OnRowEditing="btEdit_Click" OnRowUpdating="btOK_Click" OnRowCancelingEdit="btCancel_Click">
<Columns>
<asp:TemplateField HeaderText="指标名称">
<EditItemTemplate>
<asp:TextBox ID="tbName" runat="server" Text='<%# Bind("Target_Name") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblName" runat="server" Text='<%# Bind("Target_Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="指标单位">
<EditItemTemplate>
<asp:TextBox ID="tbUnit" runat="server" Text='<%# Bind("Target_Unit") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblUnit" runat="server" Text='<%# Bind("Target_Unit") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="目标值">
<EditItemTemplate>
<asp:TextBox ID="tbGoal" runat="server" Text='<%# Bind("Target_Goal") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblGoal" runat="server" Text='<%# Bind("Target_Goal") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="权重">
<EditItemTemplate>
<asp:TextBox ID="tbWeight" runat="server" Text='<%# Bind("Target_Weight") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblWeight" runat="server" Text='<%# Bind("Target_Weight") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField HeaderText="编辑" ShowEditButton="True" CausesValidation="False" />
</Columns>
<HeaderStyle Font-Bold="True" Font-Names="宋体" ForeColor="White" Height="20px" HorizontalAlign="Center"
VerticalAlign="Middle" />
<PagerStyle Font-Bold="True" Font-Names="宋体" ForeColor="White" Height="20px" HorizontalAlign="Center"
VerticalAlign="Middle"/>
</asp:GridView>
/// <summary>
/// 更新按钮按下时
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btOK_Click(object sender, GridViewUpdateEventArgs e)
{ GridViewRow loGridRow = this.grvTargetList.Rows[e.RowIndex];
//这里就会出错了,loGridRow.FindControl("tbName")为null
string lsTargetName = ((TextBox)loGridRow.FindControl("tbName")).Text.Trim();
string lsTargetUnit = ((TextBox)loGridRow.FindControl("tbUnit")).Text.Trim();
string lsGoal = ((TextBox)loGridRow.FindControl("tbGoal")).Text.Trim();
string lsWeight = ((TextBox)loGridRow.FindControl("tbWeight")).Text.Trim();
//恢复到浏览状态
grvTargetList.EditIndex = -1;
this.grvTargetList.DataBind(moItemsDs.ProjectTarget);
}
{
........
}