后台如何取得GridView中ItemTemplate 中的值
<asp:TemplateField HeaderText="概略经度">
<ItemTemplate>
<%# StrDMSToString(Eval("SLongitude").ToString(), 4, true)%>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="tbSLongitude" runat="server" Width="101px"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
当然,我要是偷点懒
直接
<asp:TextBox ID="tbSLongitude" Text='<%# StrDMSToString(Eval("SLongitude").ToString(), 4, true)%>'>
肯定也没问题,但是StrDMSToString是需要计算的,GridView显示出来的时候已经显示了
StrDMSToString计算出来的该单元格要显示的内容,我不想再计算一遍了。
可是后台
protected void gvCtrlPoint_RowEditing(object sender, GridViewEditEventArgs e)
函数里
//概率经度度,GridView [8]
TextBox _tbSLongitude = (TextBox)(sender as GridView).Rows[e.NewEditIndex].FindControl("tbSLongitude");
_tbSLongitude.Text = (sender as GridView).Rows[e.NewEditIndex].Cells[8].Text;
这样得到的值总是空,不知道为什么。
------解决方案--------------------
<ItemTemplate>
中使用label,literal中显示数据
findcontrol取值
RowEdit e.row[e.rowindex].cell[1].text
------解决方案--------------------你显示的值是在ItemTemplate中,而你的GridView在编辑的时候处理的是EditTemplate中的中的内容,两个没有关系啊,所以你是得到的肯定是空值啊。
我建议你还是再计算一下好了