从InnerHTML获取输入值



我在从c#中的输入中获取值时遇到问题。我有一个场景,其中一些用户看到不同的表。每个用户都有自己的批准级别(从1到5(。

switch (levelofapprove_converted)
{ //HiringManager
case 1:
id_hiringmanager_div.InnerHtml = @"<table class=""table"" id=""id_hiringmanager"" runat=""server"">
<td style=""height: 37px""><input type=""checkbox"" class=""form-check-input"" id=""id_check_claims"" runat=""server""></td></table>";
break;
//IT
case 2:
id_hiringmanager_div.InnerHtml = @" <table class=""table"" id=""id_IT"" runat=""server"">                
<tr>
<td style=""color: rgb(0,0,0); height: 37px;"">Delete User Access Rights</td>
<td style=""height: 37px""><input type=""checkbox"" class=""form-check-input"" id=""id_check_access_rights"" runat=""server""></td>
</tr>
</table>";
break;
}

下面是它的设计,使用InnerHtml,我为每个人填充一个不同的表。

<div runat="server" id="id_hiringmanager_div"></div>
<table class="table">
<tr>
<td colspan="2">
<button class="btn btn-primary btn-lg btn-block" onserverclick="btn_approve_Click" runat="server">Approve</button>
</td>
</tr>
</table>

因此,当我试图从复选框中获取值或调用OnclickEvent时,不会发生任何事情。错误列表说是看不到这样的控制。以下是我如何称呼他们:

bool check_pending_leave = id_check_pending_leave.IsChecked;

所以您的问题是在字符串上创建输入。此外,我建议的runat="server"也没有帮助,因为服务器不知道它们是创建的。

您必须选择:首先是在aspx/ascx文件中创建html标记,并将它们放在asp:panel中,然后使用您所拥有的codeehind逻辑隐藏/显示它们。

或者,您可以像开始时一样进行操作,并在输入上添加标签name="id_check_claims",然后在后面的代码中,您需要调用以下输入:

//IMPORTANT: if checked it will return "on", not 1 or true
var strValue = Page.Request.Form["id_check_claims"];

希望这能有所帮助。

在复选框的点击事件中,取一个隐藏字段(服务器端变量(值来设置复选框值。

<asp:HiddenField ID="hdnClaim" runat="server" ClientIDMode="Static" Value="0" />

<script type="text/javascript">
function onclaim()
{
var idchkclaim = document.getElementById("id_check_claims");
document.getElementById("hdnClaim").value = idchkclaim.checked == true ? "1" : "0";
}
</script>

在服务器端访问以获取隐藏字段的值。

最新更新