我想从DataList的EditItemTemplate访问一个webcontrol(一个Textbox),所以我可以改变它。当我尝试执行DataList.FindControl(“TextboxID”)时,它会返回null,因为它无法识别已呈现的文本框。我试过在DataBinding,DataBound事件中寻找,而那些也不起作用。ASP.NET:从DataList中的EditItemTemplate访问WebControl
更具体地说,我需要在用户使用Calendar控件时更改文本框的值,所以我需要从Calendar_SelectionChanged事件中的EditItemTemplate访问控件。
任何人有任何想法或解决方法?谢谢!
代码:
protected void calendar1_SelectionChanged(object sender, EventArgs e)
{
// Access EditItemTemplate Control
}
<asp:DataList ID="DataListMaintenance" runat="server"
oncancelcommand="DataListMaintenance_CancelCommand"
oneditcommand="DataListMaintenance_EditCommand"
onupdatecommand="DataListMaintenance_UpdateCommand"
DataSourceID = "LMMaintDataSource"
ondeletecommand="DataListMaintenance_DeleteCommand">
<EditItemTemplate>
<table width = "100%" cellpadding = "2" cellspacing = "1">
<tr>
<td valign = "top">
<b>Contract Start Date:</b>
</td>
<td>
<asp:TextBox ID="txtContractStart" runat="server" Text = '<%# Bind("ContractStartDate") %>'></asp:TextBox>
<% if (!calDateEdit.Visible)
{ %>
<asp:LinkButton ID="linkChoose" runat="server" onclick="linkChoose2_Click">Choose</asp:LinkButton>
<%} %>
<% if (calDateEdit.Visible)
{ %>
<asp:LinkButton ID="linkCancel" runat="server" onclick="linkCancel2_Click">Cancel</asp:LinkButton>
<%} %>
</td>
<td>
<asp:Calendar ID="calDateEdit" runat="server" Visible ="false"
onselectionchanged="calendar1_SelectionChanged">
<SelectedDayStyle BorderColor="Blue" BorderStyle="Solid" />
</asp:Calendar>
</td>
</tr>
<tr>
<td>
<asp:Button ID="cmdUpdate" runat="server" Text="Update" CommandName = "Update" /> <asp:Button ID="cmdCancel" runat="server" Text="Cancel" CommandName = "Cancel" />
</td>
</tr>
</table>
</EditItemTemplate>
<ItemTemplate>
<table width = "100%" cellpadding = "2" cellspacing = "1">
<tr>
<td valign = "top">
<b>Contract Start Date:</b>
</td>
<td>
<asp:Label ID="lblStart" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ContractStartDate")%>'></asp:Label>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
是的,当我点击旁边的“选择”按钮时,我将其设置为true。 protected void linkChoose2_Click(object sender,EventArgs e){//如果可见,则隐藏其他日历如果(calDateEdit.Visible){calDatEdit.Visible = false; } calDateEdit.Visible = true; } – Confused 2010-08-03 15:23:57