如何将 C# 变量添加到 html 模态

How to add C# variables to html modal

提问人:gwydion93 提问时间:2/22/2019 最后编辑:gwydion93 更新时间:2/22/2019 访问量:1168

问:

在我的应用程序中,我有一个启动模态的按钮。该事件触发启动模式的代码后面的 C#。然后,我调用一个数据表,并用数据表中的值填充字符串变量:ASP.NetonClick

   protected void uxTicketHistoryButton_Click(object sender, EventArgs e)
    {
        ClientScript.RegisterStartupScript(this.GetType(), "key", "launchModal();", true);

        DataTable ticketHist = _dtMgr.GetContactInfoByName(uxContactDropdownList.SelectedValue);
        string rName = ticketHist.Rows[0]["RequestorName"].ToString();
        string rPhone = ticketHist.Rows[0]["RequestorPhone"].ToString();
        string rPhoneExt = ticketHist.Rows[0]["RequestorPhoneExt"].ToString();
        string rEmail = ticketHist.Rows[0]["RequestorEmail"].ToString(); ;
        string rState = ticketHist.Rows[0]["RequestorState"].ToString();
        string rOrg = ticketHist.Rows[0]["RequestorOrg"].ToString();
    }

我现在要做的是将这些变量值添加到面板内的模式中。

<asp:Button ID="uxTicketHistoryButton" runat="server" Text="Show Ticket History"  style="color: blue;" OnClick="uxTicketHistoryButton_Click"/>&nbsp;

<!-- ModalPopupExtender-->
    <ajaxToolkit:ModalPopupExtender ID="uxTicketHistoryModal" runat="server" PopupControlID="Panel1" TargetControlID="uxTicketHistoryButton"CancelControlID="btnClose" BackgroundCssClass="modalBackground">
    </ajaxToolkit:ModalPopupExtender>
    <asp:Panel ID="Panel1" runat="server" CssClass="modalPopup" align="center" style = "display:none">                                
        **** Add variable values here ****
        <asp:Button ID="btnClose" runat="server" Text="Close" />
    </asp:Panel> 

如何将 .cs 文件中的变量添加到.aspx文件的模式面板中,以便它像这样显示({ } 中的值)?enter image description here

更新这个问题似乎与模态干扰我的按钮的事件功能有关。我发布了一个额外的问题来首先解决这个问题。然后,我相信以下解决方案之一可能会奏效。谢谢大家!_Click

C# asp.net 变量 modalpopupExtender

评论

0赞 Shelby115 2/22/2019
如果我正确理解了问题,可能会重复。stackoverflow.com/questions/7406961/......

答:

3赞 mxmissile 2/22/2019 #1

网络表单:

   <asp:Panel ID="Panel1" runat="server" CssClass="modalPopup" align="center" style = "display:none">                                
            Name: <asp:Literal ID="Name" runat="server" /><br>
            Organization: <asp:Literal ID="Organization" runat="server" /><br>
            etc....
            <asp:Button ID="btnClose" runat="server" Text="Close" />
    </asp:Panel>

代码隐藏:

Name.Text = ticketHist.Rows[0]["RequestorName"].ToString(); 
Organization.Text = ticketHist.Rows[0]["RequestorOrg"].ToString()

评论

0赞 gwydion93 2/22/2019
嗯,这看起来会起作用,但它没有出现。
1赞 mxmissile 2/22/2019
什么没有确切显示?“变量”还是模态?
0赞 gwydion93 2/22/2019
模式启动并显示文本(例如:“Name:”),但文本旁边的空格为空。我把它设置好了,就像你的例子一样:<asp:Panel ID="Panel1" runat="server" CssClass="modalPopup" align="center" style = "display:none">Name: <asp:Literal ID="Name" runat="server" /><br>...</asp:Panel>
0赞 mxmissile 2/22/2019
解雇是肯定的吗?您的行是否包含数据?放置一个断点以查看值以及它是否被命中。uxTicketHistoryButton_ClickticketHistuxTicketHistoryButton_Click
1赞 gwydion93 2/23/2019
好吧,我能够让它工作。我相信@Joey菲利普斯的解决方案也会奏效,但这似乎是最容易应用于我目前的情况。谢谢!
1赞 Joey Phillips 2/22/2019 #2

可以使用 ASP.NET Razor 将 c# 变量直接发布到 html 中。

例如

<!-- Single statement block -->
@{ var myMessage = "Hello World"; }

<!-- Inline expression or variable -->
<p>The value of myMessage is: @myMessage</p> 

<!-- Multi-statement block -->
@{
var greeting = "Welcome to our site!";
var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting + " Here in Huston it is: " + weekDay;
}
<p>The greeting is: @greetingMessage</p>

您可以使用 和 方法将变量从 .cs 发布到模态。getset

  public class yourModalPage
    {
        public string RequestorName { get; set; }

    }

然后,您可以使用 .cs 将值发送到模态

yourModalPage.RequestorName = "RequestorName";