2012-04-02 58 views
2

enter image description here我有下面的代码,我希望在提示框中输入的值是文本框,这是一个asp.net控件我该怎么做那?请帮忙。在asp.net中将提示框中输入的值写入文本框

protected void btnPreview_Click(object sender, EventArgs e) 
    { 
     divTemplateDesigner.Visible = true; 
     divQueryBuilder.Visible = false; 
     int count = 0; 
     string[] splitMessage = txtTemplate.Text.Split(' '); 
     List<string> parameterList = new List<string>(); 
     List<string> valueList = new List<string>(); 
     string newMessageString = txtTemplate.Text; 
     for (int i = 0; i < splitMessage.Length; i++) 
     { 
      if (splitMessage[i].StartsWith("[")) 
      { 
       parameterList.Add(splitMessage[i]); 
       count++; 
      } 
     } 
     for (int j = 0; j < count; j++) 
     { 
      string message ="Enter "+parameterList[j]; 
      Label lblmsge = new Label(); 
      lblmsge.Text = 
       "<script language='javascript'>" + Environment.NewLine + "window.prompt('" + message + "')</script>"; 
      Page.Controls.Add(lblmsge); 
     } 
    } 

提示框即将到来。但我无法捕获用户输入的值。

和HTML是这样的箱子此

<div class="page" runat="server" id="divTemplateDesigner"> 
    <table bgcolor="#0CB1C0" style="width:100%;"> 
     <tr> 
      <td bgcolor="White" class="style5" rowspan="2"> 
       <asp:TreeView ID="treeviewDataset" runat="server" 
        onselectednodechanged="treeviewDataset_SelectedNodeChanged"> 
       </asp:TreeView> 
      </td> 
      <td> 
       <asp:TextBox ID="txtTemplate" runat="server" Height="200px" 
        TextMode="MultiLine" Width="370px"></asp:TextBox> 
      </td> 
      <td colspan="2"> 
       <br /> 
       <br /> 
       <asp:Button ID="btnPreview" runat="server" BackColor="White" Height="30px" 
        Text="Preview" Width="120px" onclick="btnPreview_Click" /> 
      </td> 
      <td> 
       <asp:TextBox ID="txtPreview" runat="server" Height="200px" TextMode="MultiLine" 
        Width="370px"></asp:TextBox> 
      </td> 
     </tr> 
     <tr> 
      <td align="left" colspan="2"> 
       &nbsp; 
       <asp:Button ID="btnBack" runat="server" BackColor="White" Height="30px" 
        Text="Back" Width="120px" onclick="btnBack_Click" /> 

     

你这个图像中看到有三个占位符[patient_ID] [Doctor_ID]和[Appointment_Date] 正在打开提示框,具体取决于第一个框中占位符的数量。 Count =占位符的数量

+1

犯错,其文本框? – Bazzz 2012-04-02 12:14:03

+0

我建议您完全使用JavaScript来完成此操作。 – 2012-04-02 12:15:19

+0

有一个名为txtPreview的文本框。这在代码中没有提到。 – Apoorva 2012-04-02 12:15:57

回答

2

只需使用Javascript来完成您的操作,而不是回发到服务器。

<script type="text/javascript"> 
    function PromptAndFillPreview() { 
     var templateStr = document.getElementById('<%= txtTemplate.ClientID %>').innerText; 
     var previewStr = ''; 
     var phIndexStart = templateStr.indexOf('['); 
     var phIndexEnd = 0; 
     while (phIndexStart >= 0) { 
      previewStr = previewStr + templateStr.substring(phIndexEnd, phIndexStart); 
      phIndexEnd = templateStr.indexOf(']', phIndexStart) + 1; 
      var placeholder = templateStr.substring(phIndexStart, phIndexEnd); 
      previewStr = previewStr + prompt("Please input value for " + placeholder, ''); 
      phIndexStart = templateStr.indexOf('[', phIndexEnd); 
     } 
     previewStr = previewStr + templateStr.substring(phIndexEnd, templateStr.length); 
     document.getElementById('<%= txtPreview.ClientID %>').innerText = previewStr; 
    } 
</script> 

而且因为你不需要回传,可以更换:

<asp:Button ID="btnPreview" runat="server" BackColor="White" Height="30px" 
    Text="Preview" Width="120px" onclick="btnPreview_Click" /> 

有:

<input type="button" style="background-color:White; height:30px; width:120px;" 
    value="Preview" onclick="PromptAndFillPreview()" /> 
+0

令人惊异的thnx:)thnx一吨:) – Apoorva 2012-04-04 07:09:03

+0

thnx为你的时间和耐心:) – Apoorva 2012-04-04 07:10:05