如何在asp.net的Repeater Control itemCommand中获取UserControl的文本值?
我开发了usercontrol时间选择器。我使用的是Bootstrap和Ajaxtoolkit 4,但没有使用updatepanel如何在asp.net的Repeater Control itemCommand中获取UserControl的文本值?,asp.net,twitter-bootstrap,user-controls,repeater,Asp.net,Twitter Bootstrap,User Controls,Repeater,我开发了usercontrol时间选择器。我使用的是Bootstrap和Ajaxtoolkit 4,但没有使用updatepanel <%@ Control Language="C#" AutoEventWireup="true" CodeFile="TimePicker.ascx.cs" Inherits="Controls_TimePicker" %> <script type="text/javascript"> $(function ()
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="TimePicker.ascx.cs" Inherits="Controls_TimePicker" %>
<script type="text/javascript">
$(function () {
$('#<%=divTime.ClientID %>').datetimepicker({
/* language: 'ar-kw',*/
language: 'en-US',
maskInput: true,
format: 'HH:mm PP',
pickDate: false,
pickSeconds: false,
pick12HourFormat: true,
pickTime: true,
placement: 'left'
});
});
</script>
<div id="divTime" clientidmode="AutoID" runat="server" class="input-append date dropup">
<span class="add-on "><i data-time-icon="icon-time" data-date-icon="icon-calendar"></i>
</span>
<asp:TextBox ID="txtDate" ClientIDMode="Predictable" Width="65%" type="text" runat="server"></asp:TextBox>
</div>
通过这个属性,我可以从我的网页中获取文本值。它工作得很好,但现在我想在repeater中使用Usercontrol(时间选择器)。代码如下:
protected void repeater_ItemCommand(object source, RepeaterCommandEventArgs e)
{
UserControl tmStart = (UserControl)e.Item.FindControl("tmStart");
Label lblStartTime = (Label)e.Item.FindControl("lblStartTime");
tmStart.Text = lblStart.Text;
}
它在中继器外部工作正常,但在中继器中不工作,tmStart.Text(文本给出错误)。知道怎么回事吗?您应该将tmStart控件转换为特定控件,而不是一般用户控件。您将有权访问文本属性
protected void repeater_ItemCommand(object source, RepeaterCommandEventArgs e)
{
Controls_TimePicker tmStart = (Controls_TimePicker)e.Item.FindControl("tmStart");
Label lblStartTime = (Label)e.Item.FindControl("lblStartTime");
tmStart.Text = lblStart.Text;
}
我通过右键单击变量并单击“快速信息”解决了这个问题 这对我有用
((Controls_TimePicker)(tmStartEdit)).Text = lblStartTime.Text;
((Controls_TimePicker)tmEndEdit).Text = lblEndTime.Text;
((Controls_DatePickerAdmin)(cldrStartEdit)).Text = lblStartDate.Text;
((Controls_DatePickerAdmin)(cldrEndEdit)).Text = lblEndDate.Text;
//控件\u TimePicker显示为红色,但运行时未给出错误不知道原因。
tmStartEdit
很可能是null
,因为在示例代码中找不到它。:)我已在代码中将tmStartEdit更新为tmStart。对于此错误,我深表歉意
((Controls_TimePicker)(tmStartEdit)).Text = lblStartTime.Text;
((Controls_TimePicker)tmEndEdit).Text = lblEndTime.Text;
((Controls_DatePickerAdmin)(cldrStartEdit)).Text = lblStartDate.Text;
((Controls_DatePickerAdmin)(cldrEndEdit)).Text = lblEndDate.Text;