我尝试在我的应用程序中创建一个页面,其中所有控件都是通过后面的 C# 代码动态生成的。我正在使用 Nuget 包DLToolkit, flowlist来创建流列表。
在使用Xaml之前,我已经在我的项目中使用了这个包,并且它完全可以工作。但是,当我尝试datatemplate在后面的代码中创建一个时,它只显示一个空白控件,但是当将鼠标悬停在该控件上方时,您可以看到其中实际上有项目。
我的问题是:如何在代码后面制作带有数据绑定的数据模板?
这是一个在Xaml中工作的示例:
<flv:FlowListView x:Name="flvList" BackgroundColor="White" FlowColumnCount="3" FlowItemsSource="{Binding LstItemSource}" HasUnevenRows="True">
<flv:FlowListView.FlowColumnTemplate>
<DataTemplate>
<StackLayout BackgroundColor="White" Padding="2" HorizontalOptions="FillAndExpand">
<Frame Margin="20" Padding="0" HeightRequest="175" OutlineColor="Gray" BackgroundColor="White" CornerRadius="10" HasShadow="True" IsClippedToBounds="True">
<Frame.Content>
<AbsoluteLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" >
<Image Aspect="AspectFill" AbsoluteLayout.LayoutBounds="1,1,1,1" AbsoluteLayout.LayoutFlags="All" Source="{Binding BgImage}" />
<BoxView Color="Black" Opacity=".5" AbsoluteLayout.LayoutBounds="1,1,1,1" AbsoluteLayout.LayoutFlags="All"/>
<StackLayout Margin="20" VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand">
<Label Text="{Binding SubTitle}" FontSize="Medium" TextColor="#66FFFFFF"/>
<Label Text="{ Binding Title}" FontSize="Large" TextColor="White" />
</StackLayout>
</AbsoluteLayout>
</Frame.Content>
</Frame>
</StackLayout>
</DataTemplate>
</flv:FlowListView.FlowColumnTemplate>
</flv:FlowListView>
Run Code Online (Sandbox Code Playgroud)
但是,在这个项目中,控件是生成的,因此不涉及Xaml …
我在思考这个问题.我有颜色存储在数据库表中,我想将表中特定单元格的背景设置为这些颜色.换一种说法:
<table>
<tr>
<td ???set color here???>
...content...
</td>
<td ???next color here???>
...next content...
</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
最初我有围绕每个内容的面板,我在代码隐藏中设置了他们的背景颜色,这很好地工作,直到我有不同尺寸的面板,这摆脱了布局.将颜色值从数据库提供给<td>元素的最简单方法是什么?请注意,颜色是用户可配置的,因此我无法在CSS文件中预先定义它们.
我发现在使用时
<!-- include file="MyPage.aspx" -->
Run Code Online (Sandbox Code Playgroud)
在ASP中命令,我无法在MyPage.aspx中使用代码隐藏.
问题是,当我尝试包含MyPage.aspx时,会出现错误,因为我们有两个Page Directive.如果我删除了Page Directive,我可以很好地包含MyPage.aspx,但无法访问代码隐藏,因为Page Directive中的"CodeBehind"参数不再存在.
所以,据我所知,我们有一个Catch-22.有没有人知道这方面的解决方法?或者只是我缺少的东西?
谢谢,-Onion-Knight
我不确定这是否会发生任何变化,但我正在使用包含MyPage.aspx的页面的母版页.
大家早.
我前面的代码中有以下javascript
<script type="text/javascript" src="~/VDSReporting/jquery.js"></script> <script type="text/javascript">
function ShowImage() {
document.getElementById('tbxProdAC')
.style.backgroundImage = 'url(/images/vds/progress.gif)';
document.getElementById('tbxProdAC')
.style.backgroundRepeat = 'no-repeat';
document.getElementById('tbxProdAC')
.style.backgroundPosition = 'right';
}
function HideImage() {
document.getElementById('tbxProdAC')
.style.backgroundImage = 'none';
}
</script>
Run Code Online (Sandbox Code Playgroud)
我如何进行'转换'这个并且仅将它存在于c#代码中?
请原谅我的无知,我完全超出了我的深度!
在ASPX页面的代码隐藏中,我得到了关于员工的一些细节(从外部数据源读取).最后我想以下面的方式展示.下面的显示可能显示不正确,但是是带有标题/列方法的简化表.
___________________________________________________________________________________
| DEPT | HR | |__________________________________________________________________________________|
| Employee Image | Emp Name | Hire Date |
|____________________________________|_____________________________________________|
| Steve.gif | Steve Jobs | 22/05/1979 |
|____________________________________|_____________________________________________|
| Mark.gif | Mark Miller | 22/05/1949 |
|____________________________________|_____________________________________________|
| DEPT | Operations | |__________________________________________________________________________________|
| Employee Image | Emp Name | Hire Date |
|____________________________________|_____________________________________________|
Run Code Online (Sandbox Code Playgroud)
数据从各种数据源收集,最终在代码隐藏中可用.我想以上述方式展示.
什么是最好的方法?我想创建一个htmldivcontrol并添加所有这些值.最后,我将div标签绑定到页面.
目前我正在尝试方法,但想知道是否有更好的方法.
请分享您的观点和示例._
您好我有一个项目列表,显示在我的asp.net页面上,如下所示:
<div class="search-result-item">
<div class="image">
<img src="images/1.png"/>
</div>
<div class="logo">
<img src="images/logo.png"/>
</div>
<div class="header">
Title
</div>
<div class="message">
Message
</div>
<div class="keywords">
key1 | key2 | key3
</div>
<div class="links">
<a href="link.html">Go to</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这显示了页面上项目的预定义布局.
项目在后面的代码中生成.
我希望每个项目都能创建一个像页面上方那样的div.我怎么能用后面的代码呢?
非常感谢
场景:我可以访问在远程Web服务器上运行的已发布的ASP.NET应用程序.目录结构如下所示:

据我所知,我无法访问项目/解决方案文件.具体来说,我找不到需要修改的特定C#代码隐藏文件.
是否可以仅使用已发布的代码轻松地重建此项目?
我的朋友是一位经验丰富的开发人员(但不熟悉.NET),他问我实际执行ASP.NET代码隐藏代码的位置; 在服务器上或客户端上.我的假设是它在客户端上执行,因此编译为JavaScript,因为代码隐藏文件中的方法将响应客户端事件,例如选择下拉列表,这不会导致回发.
我真正想要的是更加深入地了解代码隐藏文件中的代码相对于应用程序的其余部分的执行方式/位置.
我有一个自定义HTML下拉列表,在ASP.NET项目中使用它.如果用户选择任何项目并将其传递给数据库,我想获取此控件的值.
<select>
<option tabindex="2" id="Option0" runat="server" value="0" selected="selected">?????? ???? ... </option>
<option tabindex="2" id="Option1" runat="server" value="1">?? ???? </option>
<option tabindex="2" id="Option2" runat="server" value="2">?? ????</option>
<option tabindex="2" id="Option3" runat="server" value="3">?? ????</option>
<option tabindex="2" id="Option4" runat="server" value="4">???? ????</option>
<option tabindex="2" id="Option5" runat="server" value="5">??? ????</option>
<option tabindex="2" id="Option6" runat="server" value="6">?? ????</option>
<option tabindex="2" id="Option7" runat="server" value="7">??? ????</option>
<option tabindex="2" id="Option8" runat="server" value="8">??? ????</option>
<option tabindex="2" id="Option9" runat="server" value="9">?? ????</option>
<option tabindex="2" id="Option10" runat="server" value="10">?? ????</option>
<option tabindex="2" id="Option11" runat="server" value="0">????? ????</option>
<option tabindex="2" …Run Code Online (Sandbox Code Playgroud) 我foreach在代码隐藏文件中有一个循环,用于评估和计算网格中显示的每个项目并更新页面上的总费用.问题是计算只返回部分答案.它返回的部分是正确的,但它没有执行完整的计算.我相信它在找到第一个条件时失败了.
业务逻辑是这样的:如果asset每月或总成本小于或等于2000美元,则其成本asset为1007.95美元,无论签出多少个月(参见duration网格中的微调器).
如果asset一个月或总成本超过2000美元,那么其成本asset就是它的成本乘以duration它检出的月数().
我继承了这个bug和项目,所以我已经包含了完整的代码foreach,并提供了下面的两个支持截图(我不得不模糊截图中的一些信息,但显示了相关元素).
代码:
private void PopulateFormFees(CheckOut c)
{
double dblTotalMonthlyFee = 0;
double dblTotalCharge = 0;
c.CheckOutAssets.ForEach(delegate(CheckOutAsset coa)
{
if (coa.UsageFee < 2001)
{
dblTotalMonthlyFee = 1007.95;
dblTotalCharge = 1007.95 * 1;
}
if (coa.UsageFee > 2000)
{
dblTotalMonthlyFee += coa.UsageFee;
dblTotalCharge += (coa.UsageFee * coa.DurationMonths);
}
});
Run Code Online (Sandbox Code Playgroud)
Screencaptures:
屏幕截图1显示初始视图中的表单数据.在这里我们可以看到总费用label显示5,132.95美元,这表明该foreach循环计算的是4,125.00美元的费用和1,007.95美元的费用,但不是其他费用.

屏幕截图2显示了duration每个项目增加的示例.在这里,我们看到总费用label显示为21,632.95美元,这表明该foreach循环正在计算4,125.00美元的费用和1,007.95美元的费用,但不是其他费用.

感谢您的考虑并看一看.
code-behind ×10
asp.net ×8
c# ×5
html ×3
datatemplate ×1
execution ×1
foreach ×1
html-table ×1
htmlcontrols ×1
include ×1
javascript ×1
master-pages ×1
refactoring ×1
xamarin ×1