我的 GridView 控件的一列中有 2 个按钮。
<asp:TemplateField ItemStyle-CssClass="minPadding">
<ItemTemplate>
<input id="btnDateRange" type="button" value="Date Range" class="JQDatePicker SmallText FloatRight WrapButtonText" onclick="javascript:document.getElementById('hdnImpressionTagID').value = '<%# Eval("ImpressionTagID") %>'"/>
<asp:Button ID="btnShowImpressions" CommandArgument='<%# Eval("ImpressionTagID") %>' CommandName="ShowImpressions" Text="Total Impressions" runat="server" UseSubmitBehavior="false" CssClass="SmallText FloatLeft WrapButtonText" Width="80px" />
</ItemTemplate>
</asp:TemplateField>
第一个按钮是 HTML 控件的原因是因为当我尝试使用 asp:button 时 - onclick 事件不起作用(请注意 javascript 调用中的 #Eval 语句)使用服务器控件会给我错误:'服务器标签格式不正确'
我想从后面的代码中更改这些按钮的文本。(我正在使用 C#)
我找到了正确的行索引,我知道它们在单元格 5 中。
我可以像这样设置 asp:Button 控件的文本...
Button btn = ((Button)gridImpressionTags.Rows[i].Cells[5].FindControl("btnDateRange"));
btn.Text = "This Text has changed!";
问题是:当从后面的代码中引用时,Web 控件btnDateRange
显示为一个DataBoundLiteralControl
,我无法将其转换为按钮。
我也无法将其转换为文字。Unable to cast object of type 'System.Web.UI.DataBoundLiteralControl' to type 'System.Web.UI.WebControls.Literal'.
并将其转换为 DataBoundLiteralControl 有效,但不允许我更改文本: System.Web.UI.DataBoundLiteralControl.Text' cannot be assigned to -- it is read only
有谁知道为什么我的 HTML 按钮被呈现为 DataBoundLiteralControl ?有没有人有任何想法让我为我尝试?
任何建议表示赞赏!