我试图从 Web 窗体应用程序背后的代码中设置 SelectedIndexChanged。我有可变数量的下拉列表从数据库添加到页面上,并且需要一种方法在每次下拉列表更改时触发。
我目前正在尝试:
ddlProductCause.SelectedIndexChanged += new EventHandler(ddlProductCause_Changed);
ddlProductCause.ID = "ddlProductCause_" + row["item_id"].ToString();
ddlProductCause.AutoPostBack = true;
Run Code Online (Sandbox Code Playgroud)
和...
public void ddlProductCause_Changed(object sender, CommandEventArgs e)
{
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
但我没有运气。
有任何想法吗?
我在ascx文件中有控件,但我无法在.cs文件中的intellisense中看到它们.之前它工作得很好.
我可以在designer.cs文件中看到控件名称.
我删除了AppData文件夹中的Asp.net临时文件,但仍然无法正常工作.应用程序中的其他用户控件文件可以直接引用它的页面控件.这里有什么问题 ?我用的是VS2008.
我有这个XAML:
<Window x:Class="WpfBindToCodeBehind.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300"
Loaded="Window_Loaded">
<StackPanel Orientation="Vertical">
<Button Name="ToggleExpand" Click="ToggleExpand_Click">Toggle Expander</Button>
<Expander Name="Expander"
Header="Don't click me, click the button!"
IsExpanded="{Binding RelativeSource={RelativeSource Self},Path=MayExpand}">
<TextBlock Text="{Binding}"/>
</Expander>
</StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)
这是背后的代码:
public partial class Window1 : Window,INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public Window1()
{
InitializeComponent();
}
private void ToggleExpand_Click(object sender, RoutedEventArgs e)
{
MayExpand = !mayExpand;
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
Expander.DataContext = "Show me";
}
private bool mayExpand;
public bool MayExpand
{
get { …Run Code Online (Sandbox Code Playgroud) 我正在开发一个ASP.Net Web表单应用程序,我从几个月前已经离开公司的程序员那里继承.
应用程序部署在我们的Intranet服务器中,用户通过URL访问应用程序:
HTTP:// TestApp/App1的/(12345abcde)/login.aspx
当我检查IIS服务器时,应用程序的文件夹仅设置为
\的Inetpub\wwwroot的\ TestApp \应用1\
从该文件夹中,您可以看到login.aspx文件.
我想问一下前一个程序员调整了什么IIS设置,以便URL有点模糊,其中插入了名为(12345abcde)的虚构(?)文件夹.我需要在IIS中检查哪些设置?
另一个问题是在login.aspx文件中,可以找到以下内容:Codebehind ="Login.aspx.vb",但相同的文件Login.aspx.vb不在应用程序的目录中.虽然我确实看到有一个dll文件所在的bin文件夹.是否可能将文件后面的vb代码编译到该DLL中?
顺便说一句,如果有一个可以下载的可用dll查看器,请发布相同的内容,以便我可以在webforms应用程序中检查DLL.
感谢您的意见.谢谢.
默认情况下,所有代码隐藏类都继承自PhoneApplicationPage.我想创建一个子类PhoneApplicationPage并将其用作我的代码隐藏类的基础,如下所示:
namespace Test
{
public partial class HistoryRemoverPage : PhoneApplicationPage
{
protected override void OnNavigatedTo
(NavigationEventArgs e)
{
if (e.NavigationMode == NavigationMode.New)
NavigationService.RemoveBackEntry();
}
}
}
namespace Test
{
public partial class MainPage : HistoryRemoverPage
{
public MainPage()
{
InitializeComponent();
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试编译我的应用程序时,我收到以下错误:
错误1'Test.MainPage'的部分声明不得指定不同的基类
我相信这与以下声明有关MainPage.xaml,PhoneApplicationPage而不是我的子类:
电话:PhoneApplicationPage ...
但我不明白如何解决这个问题.有什么建议?
在执行代码隐藏中的代码之前或之后,ASP内联表达式 是否<% ... %>在服务器上运行?
我们需要动态创建html下拉列表.以下是我们当前的代码.Option1和Option2是包含所有项目的字符串.我们有两个字符串的原因是我们将所有项目分成两组.
<td>
<div id="dvGroup" style="display:none;" runat="server"></div>
</td>
string Option1 = "<optgroup label='Group1'><option>1</option><option1>2</option>";
string Option2 = "<optgroup label='Group2'><option>a</option><option>b</option><option>c</option>;
…
dvGroup.InnerHtml = "<Select name='ddGroup' id='ddGroup'>" + Option1 + Option2 + "</Select>";
Run Code Online (Sandbox Code Playgroud)
但通过设置InnerHtml可能会带来一些安全问题.所以我改成了:
HtmlSelect select = new HtmlSelect();
select.ID = "ddGroup";
select.Name = "ddGroup";
select.ClientIDMode = ClientIDMode.Static;
dvGroup.Controls.Add(select);
select.Controls.Add(new LiteralControl(Option1 + Option2));
Run Code Online (Sandbox Code Playgroud)
但是,它在select.Controls.Add行中抛出了以下错误...
'System.Web.UI.HtmlControls.HtmlSelect' does not allow child controls.
Run Code Online (Sandbox Code Playgroud)
我该如何解决?另一个问题是,将ClientIDMode设置为Static只确保id没有更改,但名称仍然添加额外的东西.如何确保名称不会更改?
我在C#代码隐藏中得到了这个语句,我正在检查我的变量是否等于特定的数字,如果是,它将处理一些代码:
try
{
int TaskID = Convert.ToInt32(ddlTask.SelectedValue);
if (TaskID == 157)
{
//lblAccountName.Text = (DT1["CUST_NM"].ToString());
Label2.Text = (DT1["CUST_NM"].ToString());
//lblAccountName.Visible = true;
TBAccountNum.Text = (DT1["CUST_NUM"].ToString());
TBAccountNum.Visible = true;
}
}
catch (Exception ae)
{
Response.Write(ae.Message);
}
Run Code Online (Sandbox Code Playgroud)
工作完美.但是,现在我想在"if"列表中添加一些其他数字.在SQL Server中,它将类似于:
if (TaskID IN (157, 158, 159, 160, 162, 165))
Run Code Online (Sandbox Code Playgroud)
有没有办法在C#中做到这一点?我还在学习,所以如果这有点简单,我道歉.
我有一个会话变量,我需要在具有许多webmethod函数的cs页面上使用.如果我声明如下,我并不总是得到最新的变量.有时它会给我在最后一个之前存储的变量.我究竟做错了什么?
public partial class uc_functions : MyBasePage
{
static string ucService = HttpContext.Current.Session["ucService"] as string;
....
[WebMethod] //1
[WebMethod] //2
[WebMethod] //3
Run Code Online (Sandbox Code Playgroud) 如何从代码隐藏中的javascript函数中检索值,在页面加载时... javascript函数如:
<script type="text/javascript">
function isIFrame() {
var isInIFrame = (top.location != self.location);
if (isInIFrame) {
return "inside";
}
else {
return "outside";
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
和代码背后像:
protected void Page_Load(object sender, EventArgs e)
{
string resutOfExecuteJavaScript = "";
// resutOfExecuteJavaScript = isIFrame(); // from javascript
if (resutOfExecuteJavaScript == "inside")
{
// do something
}
else
{
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
code-behind ×10
asp.net ×6
c# ×5
data-binding ×1
dropdownbox ×1
iis ×1
javascript ×1
operators ×1
reference ×1
select ×1
subclass ×1
webforms ×1
webmethod ×1
wpf ×1
xaml ×1