2014-02-28 4 views
1

GridView에 캘린더를 추가 한 텍스트 상자가 있습니다. 나는 이상한 문제에 직면하고있다 .. 캘린더 익스텐더는 GridView의 첫 번째 행에 대해 정상적으로 작동하지만 작동하지 않는다.Calendar Extender는 GridView의 첫 번째 행에서만 작동합니다.

ASPX 코드는 다음과 같습니다 : (죄송합니다, 나는 그것이 긴 코드 알고있다.)

<asp:TabContainer AutoPostBack="false" ID="TabContainer_Main" Height="270px" runat="server"> 
<asp:TabPanel ID="TabPanel__TravelLine" runat="server" HeaderText="Travel Line"> 
<ContentTemplate> 
<div id="div_TravelLine"> 
<asp:UpdatePanel ID="upPanel_TravelLine" runat="server"> 
<ContentTemplate> 
<asp:Panel ID="Panel_TravelLine" runat="server"> 
<asp:GridView ID="grvTravelLine" CssClass="tabledata" runat="server" ShowFooter="True" 
AutoGenerateColumns="False" ShowHeaderWhenEmpty="True" Width="100%" OnRowDataBound="grvTravelLine_RowDataBound"> 
<Columns> 
<asp:BoundField DataField="RowNumber" HeaderText="Row Number" /> 
<asp:TemplateField HeaderText="From City"> 
<ItemTemplate> 
<asp:TextBox MaxLength="50" Text='<%# Eval("From_City") %>' onkeypress="return Alpha(event);" 
ID="txtFrmCity_TravelLine" Width="70px" CssClass="txtbox" runat="server"></asp:TextBox></ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="To City"> 
<ItemTemplate> 
<asp:TextBox ID="txtToCity_TravelLine" Text='<%# Eval("To_City") %>' onkeypress="return Alpha(event);" 
MaxLength="50" Width="70px" CssClass="txtbox" runat="server"></asp:TextBox></ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="Travel Mode"> 
<ItemTemplate> 
<asp:DropDownList ID="ddlTravelMode_TravelLine" Width="100px" CssClass="drpdown" 
runat="server"> 
</asp:DropDownList> 
</ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="Travel Date"> 
<ItemTemplate> 
<asp:TextBox ID="txtTravelDt_TravelLine" Text='<%# Eval("TravelDt") %>' Width="70px" 
runat="server" ClientIDMode="Static" CssClass="FormText"></asp:TextBox> 
<asp:CalendarExtender 
ID="Cal_txtTravelDt" CssClass="MyCalendar" runat="server" Format="yyyy/MM/dd" 
TargetControlID="txtTravelDt_TravelLine"> 
</asp:CalendarExtender> 

</ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="Booking Date"> 
<ItemTemplate> 
<asp:TextBox ID="txtBookingDt_TravelLine" Text='<%# Eval("BookingDt") %>' runat="server" 
ClientIDMode="Static" CssClass="FormText"></asp:TextBox><asp:CalendarExtender ID="Cal_txtBookingDt" 
CssClass="MyCalendar" runat="server" Format="yyyy/MM/dd" TargetControlID="txtBookingDt_TravelLine"> 
</asp:CalendarExtender> 
</ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="Arrival Date"> 
<ItemTemplate> 
<asp:TextBox ID="txtArrivalDt_TravelLine" Text='<%# Eval("ArrivalDt") %>' runat="server" 
ClientIDMode="Static" CssClass="FormText"></asp:TextBox><asp:CalendarExtender ID="Cal_txtArrivalDt" 
CssClass="MyCalendar" runat="server" Format="yyyy/MM/dd" TargetControlID="txtArrivalDt_TravelLine"> 
</asp:CalendarExtender> 
</ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="Amount"> 
<ItemTemplate> 
<asp:TextBox ID="txtAmount_TravelLine" AutoPostBack="true" OnTextChanged="txtAmount_TravelLine_OnTextChanged" 
Text='<%# Eval("Amount") %>' MaxLength="7" Width="200px" onblur="Fixed(this);" 
CssClass="txtbox" runat="server"></asp:TextBox><asp:FilteredTextBoxExtender ID="ftbetxtAmount_TravelLine" 
runat="server" TargetControlID="txtAmount_TravelLine" FilterMode="ValidChars" 
FilterType="Custom" ValidChars="."> 
</asp:FilteredTextBoxExtender> 
</ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="D"> 
<ItemTemplate> 
<asp:LinkButton ID="lnkDel" runat="server" OnCommand="DeleteRowHandler_TravelLine" 
Text="D"></asp:LinkButton></ItemTemplate> 
</asp:TemplateField> 
</Columns> 
</asp:GridView> 
<br /> 
<br /> 
<table width="100%"> 
<tr> 
<td align="left"> 
<asp:LinkButton ID="LnkAddTravelLineToGrv" runat="server" Font-Bold="True" ForeColor="#3366FF" 
OnClick="LnkAddTravelLineToGrv_Click">Click To Add</asp:LinkButton><b>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 
(Note: D = Delete) </b> 
</td> 
<td align="right"> 
<b>Grand Total:&nbsp;&nbsp; </b> 
<asp:TextBox ID="txtgrandtotal" Style="text-align: right;" runat="server" ClientIDMode="Static" 
CssClass="FormText" Width="80px"></asp:TextBox> 
</td> 
</tr> 
</table> 
</asp:Panel> 
</ContentTemplate> 
<Triggers> 
<asp:PostBackTrigger ControlID="LnkAddTravelLineToGrv" /> 
</Triggers> 
</asp:UpdatePanel> 
</div> 
</ContentTemplate> 
</asp:TabPanel> 
<asp:TabPanel ID="TabPanel_LodgingNLiving" runat="server" HeaderText="Lodging & living"> 
<ContentTemplate> 
<div id="div_LodgingNLiving"> 
<asp:UpdatePanel ID="UpPanel_LodgingNLiving" runat="server"> 
<Triggers> 
<asp:AsyncPostBackTrigger ControlID="lnkAddLodgingLivingToGrv" EventName="Click" /> 
</Triggers> 
<ContentTemplate> 
<asp:Panel ID="Panel_LodgingLiving" runat="server"> 
<asp:GridView ID="grvLodgingLiving" OnRowDataBound="grvLodgingLiving_RowDataBound" 
CssClass="tabledata" runat="server" ShowFooter="True" AutoGenerateColumns="False" 
ShowHeaderWhenEmpty="True" Width="100%"> 
<Columns> 
<asp:BoundField DataField="RowNumber" HeaderText="Row Number" /> 
<asp:TemplateField HeaderText="City"> 
<ItemTemplate> 
<asp:TextBox MaxLength="50" Text='<%# Eval("City") %>' onkeypress="return Alpha(event);" 
ID="txtCity_LodgingNLiving" Width="80px" CssClass="txtbox" runat="server"></asp:TextBox></ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="Lodging Nights"> 
<ItemTemplate> 
<asp:TextBox Text='<%# Eval("Lodging_Nights") %>' ID="txtLodgingNights_LodgingNLiving" 
onkeypress="return OnlyNum(event);" Width="50px" MaxLength="3" CssClass="txtbox" 
runat="server"></asp:TextBox></ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="Lodging Days"> 
<ItemTemplate> 
<asp:TextBox Text='<%# Eval("Lodging_Days") %>' ID="txtLodgingDays_LodgingNLiving" 
onkeypress="return OnlyNum(event);" Width="50px" MaxLength="3" CssClass="txtbox" 
runat="server"></asp:TextBox></ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="Hotel/Lodge Name"> 
<ItemTemplate> 
<asp:TextBox Text='<%# Eval("Hotel_LodgeName") %>' MaxLength="50" onkeypress="return Alpha(event);" 
ID="txtHotelLodgename_LodgingNLiving" CssClass="txtbox" runat="server"></asp:TextBox></ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="Check-In Date"> 
<ItemTemplate> 
<asp:TextBox Text='<%# Eval("CheckInDt") %>' ID="txtCheckinDt_LodgingNLiving" runat="server" 
ClientIDMode="Static" CssClass="FormText"></asp:TextBox><asp:CalendarExtender ID="Cal_txtCheckinDt_LodgingNLiving" 
CssClass="MyCalendar" runat="server" Format="yyyy/MM/dd" TargetControlID="txtCheckinDt_LodgingNLiving" /> 
</ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="Check-Out Date"> 
<ItemTemplate> 
<asp:TextBox Text='<%# Eval("CheckOutDt") %>' ID="txtCheckoutDt_LodgingNLiving" runat="server" 
ClientIDMode="Static" CssClass="FormText"></asp:TextBox><asp:CalendarExtender ID="CaltxtCheckoutDt_LodgingNLiving" 
CssClass="MyCalendar" runat="server" Format="yyyy/MM/dd" TargetControlID="txtCheckoutDt_LodgingNLiving" /> 
</ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="Remark"> 
<ItemTemplate> 
<asp:TextBox Text='<%# Eval("Remark") %>' CssClass="txtbox" ID="txtRemark_LodgingNLiving" 
runat="server" Height="50px" Width="80px" MaxLength="100"></asp:TextBox></ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="Amount"> 
<ItemTemplate> 
<asp:TextBox Text='<%# Eval("Amount") %>' AutoPostBack="true" OnTextChanged="txtAmount_LodgingNLiving_OnTextChanged" 
MaxLength="7" ID="txtAmount_LodgingNLiving" Width="70px" onblur="Fixed(this);" 
CssClass="txtbox" runat="server"></asp:TextBox><asp:FilteredTextBoxExtender ID="Ftb_txtAmount_LodgingNLiving" 
runat="server" TargetControlID="txtAmount_LodgingNLiving" FilterMode="ValidChars" 
FilterType="Custom" ValidChars="."> 
</asp:FilteredTextBoxExtender> 
</ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="D"> 
<ItemTemplate> 
<asp:LinkButton ID="lnkDel" runat="server" OnCommand="DeleteRowHandler_LodgingLiving" 
Text="D"></asp:LinkButton></ItemTemplate> 
</asp:TemplateField> 
</Columns> 
</asp:GridView> 
<br /> 
<br /> 
<table width="100%"> 
<tr> 
<td align="left"> 
<asp:LinkButton ID="lnkAddLodgingLivingToGrv" OnClick="LnkAddLodgingLivingToGrv_Click" 
runat="server" Font-Bold="True" ForeColor="#3366FF">Click To Add</asp:LinkButton><b>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 
(Note: D = Delete) </b> 
</td> 
<td align="right"> 
<b>Grand Total:&nbsp;&nbsp; </b> 
<asp:TextBox ID="txtGrandTotal_LodgingLiving" Style="text-align: right;" runat="server" 
ClientIDMode="Static" CssClass="FormText" Width="80px"></asp:TextBox> 
</td> 
</tr> 
</table> 
</asp:Panel> 
</ContentTemplate> 
</asp:UpdatePanel> 
</div> 
</ContentTemplate> 
</asp:TabPanel> 
<asp:TabPanel ID="TabPanel_IncidentalCost" runat="server" HeaderText="Incidental Cost"> 
<ContentTemplate> 
<div id="div_IncidentalCost"> 
<asp:UpdatePanel ID="UpPanel_IncidentalCost" runat="server"> 
<Triggers> 
<asp:AsyncPostBackTrigger ControlID="LnkAddIncidentalCostToGrid" EventName="Click" /> 
</Triggers> 
<ContentTemplate> 
<asp:Panel ID="Panel_IncidentalCost" runat="server"> 
<asp:GridView ID="grvIncidentalCost" OnRowDataBound="grvIncidentalCost_RowDataBound" 
CssClass="tabledata" runat="server" ShowFooter="True" AutoGenerateColumns="False" 
ShowHeaderWhenEmpty="True" Width="100%"> 
<Columns> 
<asp:BoundField DataField="RowNumber" HeaderText="Row Number" /> 
<asp:TemplateField HeaderText="Place"> 
<ItemTemplate> 
<asp:TextBox MaxLength="50" Text='<%# Eval("Place") %>' onkeypress="return Alpha(event);" 
ID="txtPlace_IncidentalCost" Width="200px" CssClass="txtbox" runat="server"></asp:TextBox></ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="Amount"> 
<ItemTemplate> 
<asp:TextBox ID="txtAmount_IncidentalCost" MaxLength="7" Text='<%# Eval("Amount") %>' 
Width="200px" onblur="Fixed(this);" CssClass="txtbox" runat="server"></asp:TextBox><asp:FilteredTextBoxExtender 
ID="Ftb_txtAmount_IncidentalCost" runat="server" TargetControlID="txtAmount_IncidentalCost" 
FilterMode="ValidChars" FilterType="Custom" ValidChars="."> 
</asp:FilteredTextBoxExtender> 
</ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="Remark"> 
<ItemTemplate> 
<asp:TextBox CssClass="txtbox" AutoPostBack="true" OnTextChanged="txtRemark_IncidentalCost_OnTextChanged" 
Text='<%# Eval("Remark") %>' ID="txtRemark_IncidentalCost" runat="server" Height="50px" 
TextMode="MultiLine" Width="463px" MaxLength="100"></asp:TextBox></ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="D"> 
<ItemTemplate> 
<asp:LinkButton ID="lnkDel" runat="server" OnCommand="DeleteRowHandler_IncidentalCost" 
Text="D"></asp:LinkButton></ItemTemplate> 
</asp:TemplateField> 
</Columns> 
</asp:GridView> 
<br /> 
<br /> 
<table width="100%"> 
<tr> 
<td align="left"> 
<asp:LinkButton ID="LnkAddIncidentalCostToGrid" runat="server" 
Font-Bold="True" ForeColor="#3366FF" 
OnClick="LnkAddIncidentalCostToGrid_Click"> 
Click To Add</asp:LinkButton> 
<b>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 
&#160;&#160;&#160;&#160;&#160; 
(Note: D = Delete) </b> 
</td> 
<td align="right"> 
<b>Grand Total:&nbsp;&nbsp; </b> 
<asp:TextBox ID="txtGrandTotal_IncidentalCost" 
Style="text-align: right;" runat="server" 
ClientIDMode="Static" CssClass="FormText" Width="80px"></asp:TextBox> 
</td> 
</tr> 
</table> 
</asp:Panel> 
</ContentTemplate> 
</asp:UpdatePanel> 
</div> 
</ContentTemplate> 
</asp:TabPanel> 
</asp:TabContainer> 
+0

문제를 분명히 말하는 질문 ... 신중하게 읽으면 OP에서 요구하는 바를 알 수 있습니다. –

답변

1

문제

Textboxes

ClientIDMode="Static" 
에 당신의 ClientIDMode 속성입니다 당신은 abvoe 속성을 제거해야 GridView 코드를 사용하면 모든 TextBox 컨트롤의 ID가 같기 때문에이 특정 컨트롤에 대한 "txtCheckoutDt_LodgingNLiving"은 calender ex입니다. 입찰이 설정됩니다. CalendarExtender 컨트롤은 첫 번째 값 (첫 번째 행에 있음)을 찾아 모든 값에 매핑합니다.

제어 ID 할당 패턴을 구체화하려면 here's 주제에 대해 자세히 알아보십시오.

관련 문제