2016-04-20 12 views
0

我在panel内有datalist,如下所示。每个数据列表项(使用LinkButtonCommandArgument)都会显示roomNum。从datalist项目点击设置文本框的值没有回发?

没有做PostBack,我想填充textbox TextBoxRoomNum在数据列表项RoomNumLabel1。我认为这将与javascript完成。

<asp:Panel ID="PanelRoomDetail" runat="server" style="position:absolute; width:600px; height: 600px; display:none"> 
    <telerik:RadTabStrip RenderMode="Lightweight" runat="server" ID="RadTabStrip1" MultiPageID="RadMultiPage1" SelectedIndex="0" > 
     <Tabs> 
      <telerik:RadTab Text="Assign" Width="200px"></telerik:RadTab> 
     </Tabs> 
    </telerik:RadTabStrip> 
    <telerik:RadMultiPage runat="server" ID="RadMultiPage1" SelectedIndex="0"> 
     <telerik:RadPageView runat="server" ID="RadPageView2"> 
      <div style="width: 600px; height: 200px; "> 
       <div style="width: 600px;"> 
        <asp:DataList ID="DataListFloorThumb" runat="server" RepeatColumns="5" > 
         <ItemTemplate> 
          <div style="width:72px;height:72px"> 
          <asp:LinkButton id="LinkButton1" runat="server"> 

           <div style='background-image:url(<%# Eval("image_path","Styles/Images/{0}") %>)'> 
            <div style="overflow: hidden;"> 
             <div style="text-align: left; float:left;"> 
              <asp:Label ID="Label1" runat="server" Text='<%# Eval("RoomNum")%>' CommandName="cmd_RoomNum" CommandArgument='<%# Eval("RoomNum")%>' Font-Names="Calibri" Font-Size="11pt"></asp:Label> 
             </div> 
            </div> 
           </div> 
          </asp:LinkButton> 
         </ItemTemplate> 
        </asp:DataList> 
       </div> 
      </div> 
      <div> 
       <div> 
        <asp:TextBox ID="TextBoxRoomNum" runat="server"></asp:TextBox> 
       </div> 
      </div> 
     </telerik:RadPageView> 
    </telerik:RadMultiPage> 
</asp:Panel> 

这可以很容易做,如果页面不回传,但没有回发我认为它需要一些JavaScript,而这也正是我坚持。我更喜欢没有jQuery。

谢谢。

回答

0

与任何服务器端控件,您可以添加一个OnClientClick属性,将执行你的属性值进入的javascript:

免责声明:未经测试。不知道Eval语法,总是咬我。没有做适当的空检查。脚本污染全球范围。

<asp:LinkButton id="LinkButton1" runat="server" 
    OnClientClick='return ShowRoom(<%# Eval("RoomNum")%>);' /> 

...别的地方:

<script> 
     function ShowRoom(room){ 
      var txtBox = document.querySelector("#TextBoxRoomNum"); 
      txtBox.value = room; 
      return false; 
     } 
</script> 
+0

感谢您的答复。我忘了在代码中提到面板使用了“ModalPopupExtender”。这会影响解决方案吗?看起来,当我点击datalist时,弹出窗口消失了,我认为这是因为它正在进行部分回发? – rbhat

+0

@rbhatup,我真的不能说这会如何表现。该模式应该仍然能够访问JavaScript。也许不会返回错误?我怀疑它是否做了部分回传。 – Crowcoder

相关问题