访问详细信息视图在呈现视图之前绑定数据

时间:2011-02-25 17:58:40

标签: asp.net

我在下面显示的详细信息视图中有一个字段

<asp:BoundField DataField="DTMON_F" HeaderText="Monday Hours From: " InsertVisible="False"
            ReadOnly="True" SortExpression="HOURS" Visible="false" />
        <asp:TemplateField HeaderText="Monday Hours From: " SortExpression="HOURS">
            <EditItemTemplate>
                <uc1:TimePicker ID="tpMondayHours" runat="server"/>
            </EditItemTemplate>
        <InsertItemTemplate>
               <%-- <uc1:TimePicker runat="server" ID="tpMondayHours" />--%>
                  <asp:TextBox ID="txtMondayHours" runat="server" Text='<%# Bind("DTMON_F") %>'></asp:TextBox>
            </InsertItemTemplate>
            <ItemTemplate>
                <asp:Label ID="lblMondayHours" runat="server" Text='<%# Bind("DTMON_F") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>

在“DTMON_F”绑定到视图之前我想剪切返回的字符串...我在哪里以及如何做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以为每个控件实现OnDataBinding事件,而不是内联绑定。这将使您能够在将数据分配给控件之前对数据执行任何操作。

使用Label的示例。同样可以应用于TextBox

<asp:Label ID="lblMondayHours" runat="server"
    OnDataBinding="lblMondayHours_DataBinding"></asp:Label>

protected void lblMondayHours_DataBinding(object sender, System.EventArgs e)
{
    Label lbl = (Label)(sender);
    string yourValue = (int)(Eval("DTMON_F"));
    // *** Do whatever you want with the value now
    lbl.Text = yourValue;
}